ラベル 初期化 の投稿を表示しています。 すべての投稿を表示
ラベル 初期化 の投稿を表示しています。 すべての投稿を表示

2008年12月14日日曜日

Flexのコンポーネントの初期化

ActionScriptでコントロールを作成して、

//オブジェクトを生成
var waitWindow:WaitWindow =new WaitWindow();
//ラベルを設定
waitWindow.setLabel(objFile.name);


という風に処理を行い
newしたコンポーネントに対して処理を行う場合、
newされた側にあるコンポーネントの値にアクセスすると
nullオブジェクトにアクセスする場合があります。

そんなときは


private var myLabel:String = "";

public function setLabel(aLabelText:String):void {
myLabel = aLabelText;
callLater(setTitle);
}

private function setTitle():void {
displayLabel.text = myLabel;
}


として処理を遅らせます。
newしただけでは中にあるDisplayObjectが初期化が行われないのでしょう。
callLater()は表示を再描画時に処理を行うそうなので
処理を遅らせて処理をすることが可能になります。

何度も処理を行うような時に使用するかは。。。わかりませんが
これで初期化はOKです。

2008年12月4日木曜日

Flexで初期化

Flexでの初期化の方法です。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp();">
<mx:Script>
<![CDATA[
//アプリケーション初期化
public function initApp():void{
}
]]>
</mx:Script>
</mx:Application>


Appricationタグに「creationComplete」でメソッドを指定して
ActionScriptでメソッドを記述します。
これでこのメソッドが初期化処理として呼び出されます。