2009年02月05日 木曜日
Stageの大きさ
Flex | |
stageの大きさを取得しようと、stage.stageWidthを使ってみたのですが、取得できず。
なんでだろう?と調べてみると、「EnterFrame」が実行されないと取得できない、という話がありました。EnterFrame?どうやら、Flashのフレーム?タイムラインらしい。
Flexには、初期化のイベントがいくつかあって、creationCompleteだけじゃなく、色々とあるようです。
ということで、EnterFrameじゃないと、stageオブジェクトがnullらしい。でも、EnterFrameイベントのときもnullみたいなんですよねぇ。なんでだろう?
ダメな例
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.controls.Alert; import flash.display.DisplayObject; public var w:Number = stage.stageWidth; public function init():void{ Alert.show(w as String); } ]]> </mx:Script> </mx:Application>
あと Flex では、stage に直接アクセスすることは少ないと思いますよ。
Flexだと、stageに直接アクセスすることってあまりないんですか?