星期六, 2月 27, 2010

ActionScript 3.0 中的 stage, root, MainTimeline

學了不算短的Flash還是沒有很瞭解stage, root, MainTimeline的差異

swf.com.tw - ActionScript 3.0里的stage(舞台), root和MainTimeline(主時間軸)
這篇的解釋非常詳細,也讓我很清楚的瞭解其中的差異

另外也做了個小實驗,發現Flash和Flex指的是不同的東西:

flash 下
trace(this, this.root, this.stage, root, stage, this==this.root, this.root == root, this.stage == stage);
[object Story] [object Story] [object Stage] [object Story] [object Stage] true true true


flash builder 4 下
trace(this, this.root, this.stage, root, stage, this==this.root, this.root == root, this.stage == stage);
WebometricsRanking null null null null false true true



其他的筆記


在時間軸上用
this.initComp = false; //不會報錯
root.initComp = false; //報錯:  存取可能未定義屬性

this 不是等於 root 嗎? 為什麼會這樣呢?

因為在root用點運算子(.)編譯器會找有沒有initComp這個物件
this的話會指定動態命名

另外一種方法是
root["initComp"] = false; //不會報錯
因為[]運算子原本就是在指定動態命名

2 則留言:

  1. CS4 的stage 移植到 flash builer 4 下要如何處理?

    回覆刪除
  2. http://gotoandlearn.com/index.php?currentpage=2
    Multi Touch Gesture Applications
    Learn how to use the new gesture support in Flash Player 10.1 and Adobe AIR 2.0.
    移到fB4就掛了
    this.stage.displayState= StageDisplayState.FULL_SCREEN_INTERACTIVE;
    報錯

    回覆刪除