iT邦幫忙

0

ActionScript 3 元件底下的變數該怎呼叫!?

as3

不好意思
又來請教各位

請問
在元件底下的變數
我該怎去呼叫它

假設在元件名稱為a1底下有個變數為 aa=1;
請問我該如何乎叫它出來運算

我想做的是 aa+=1;
讓a1變成2
if (a==2)
{
trace("1");
}

所以想請教一下該怎乎叫元件內的變數
本來以為格式是
a1.aa +=1;
但系統回應

場景 1 1046: 找不到 Type,或它不是編譯時期常數:a1。

public var aa:int = 1; // 設定為公開的,在成為元件狀態時才能被使用

2 個回答

2
chetbaker
iT邦新手 3 級 ‧ 2012-04-03 15:37:05

不知道你movie的元件是怎麼寫的,如果是獨立出一個class的話,看是要把變數宣告成public或是做一個public的getter/setter,這樣應該就可以存取得到吧

chetbaker iT邦新手 3 級 ‧ 2012-04-03 15:47:25 檢舉

場景 1 1046: 找不到 Type,或它不是編譯時期常數:a1。

不過看這錯誤訊息...應該是找不到a1,而不是aa XD

0
tenthree
iT邦新手 5 級 ‧ 2012-04-06 02:38:00

如果你是把變數宣告在影片片段(mc)裡面,
要從主場景時間軸存取 mc 裡面定義的變數,
要注意的是 "主場景時間軸" 與 "mc內部時間軸" 不是同時初始化完成的,
所以當你從主場景要呼叫的時候, mc內部也許還沒準備好,
MovieClip 是動態類別, 所以是容許你自定變數的.

// -----------------------------------------------------
主場景時間軸 > 第一格:

<pre class="c" name="code">import flash.events.Event;
import flash.display.MovieClip;

this.loaderInfo.addEventListener(Event.COMPLETE, ready);
function ready(e:Event):void
{
    trace(mc.a1); //exist
}
trace(mc.a1); //undefined

// -----------------------------------------------------
mc 內部時間軸 > 第一格:

<pre class="c" name="code">var a1:String = "exist";

建議還是將程式碼分離,以 class 的方式開發

我要發表回答

立即登入回答