クラスライブラリやASDocsを読んでないと気付かないかもしれないのですがProgressionにはさまざまな便利なクラスやUtilityメソッドが存在します。

その中のひとつで何気に強力なプロパティを6つ紹介します。

  • CastDocument.top
  • CastDocument.bottom
  • CastDocument.left
  • CastDocument.right
  • CastDocument.center
  • CastDocument.middle

これらのプロパティはステージの四辺の座標を取得するためのものなのですが、StageAlignやStageScaleModeの組み合わせで微妙に変わってくる面倒な計算を行ってくれます。

topが上辺のY座標、bottomが下辺のY座標、leftが左辺のX座標、rightが右辺のX座標。またcenterがX方向の中心、middleがY方向の中心となります。

たとえば背景一面に模様を敷いたりする場合は次のように普通にGraphics.drawRectなどのメソッドで行うことが可能です。(幅と高さは普通にstage.stageWidth,stage.stageHeigthをつかいます)

import flash.display.Sprite;
import flash.events.Event;
improt jp.progression.casts.CastDocument;
public class AllGroundFillRect extends Sprite {
    public function AllGroundFillRect() {
        addEventListener( Event.ADD_TO_STAGE, addToStage );
    }
    private function addToStage( e:Event ):void {
        update();
    }
    public function update():void{
        graphics.beginFill( 0xFFFFFF );
        graphics.drawRect(
            CastDocument.left,
            CastDocument.top,
            CastDocument.stage.stageWidth,
            CastDocument.stage.stageHeight
        );
        graphics.endFill();
    }
}

次に単純なセンタリングなら次のようにスッキリかけます。

var sp:Sprite = new Sprite();
sp.graphics.beginFill(0xFF0000);
sp.graphics.drawCircle(0, 0, 20 );
sp.graphics.endFill();

sp.x = CastDocument.center;
sp.y = CastDocument.middle;

これはタイムラインでもつかえるので地味に便利だと思います。

HTML5飯