Progression4(3)で超簡単にステージの情報を取得する方法
クラスライブラリや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;
これはタイムラインでもつかえるので地味に便利だと思います。

