2009/11/15 | 时间轴类与文档类的关系
类别(as3学习札记) | 评论(0) | 阅读(201) | 发表于 19:38

时间轴类与文档类的关系

——根据zjs35及独自行走两位老师文章整理改编

时间轴类(MainTimeline)也是文档类,只不过它是自动创建的,而文档类是我们自定义的。测试思路如下:新建flash文档,先在时间轴上写代码

trace("//时间轴测试");

//stage.numChildren=1

trace("stage.numChildren="+stage.numChildren);

//stage.getChildAt(0):[object MainTimeline]

trace("stage.getChildAt(0):"+stage.getChildAt(0));

//this:[object MainTimeline]

trace("this:"+this);

//root:[object MainTimeline]

trace("root:"+root);

测试结果表明:stage下有1个显示对象即MainTimeline类的实例。

下面看看文档类,

package {

       import flash.display.*;

       //文档类必须继承Sprite类或其子类(MovieClip)

       public class DocumentClassExample extends MovieClip {

                     function DocumentClassExample() {

                     trace("//DocumentClassExample类体内测试");

                     stage.getChildAt(0)=1

                     stage.getChildAt(0):[object DocumentClassExample]

                     }

       }

}

输出信息为:

//DocumentClassExample类体内测试

stage.numChildren=1

stage.getChildAt(0):[object DocumentClassExample]

//时间轴测试

stage.numChildren=1

stage.getChildAt(0):[object DocumentClassExample]

this:[object DocumentClassExample]

root:[object DocumentClassExample]

输出信息告诉我们,stage下还是只有1个显示对象,为文档类的实例。MainTimeline类和DocumentClassExample类都继承MovieClip类,由此可见MainTimeline类也是文档类,只不过它是自动创建的,而DocumentClassExample类是我们自定义的

(以上内容根据zjs35老师文章整理改编。)

对于MainTimeline类就是一种特殊的文档类的结论,还可以从对其进行反编所获得的类代码来得到验证。下面是用Sothink SWF Decompiler v5.1 多国语言版对MainTimeline类文档反编得到的类代码:

package {

    import flash.display.*;

    dynamic public class MainTimeline extends MovieClip   {

        public function MainTimeline()   {

   addFrameScript(0, frame1);

            return;

        }

        function frame1()  {

trace("");

            trace("//时间轴测试");

            trace("this:" + this);

            trace("root:" + root);

            return;

        }

    }

}

此类名直接就是MainTimeline类,由此可见:MainTimeline类确实就是文档类的一种。

(以上内容根据独自行走老师文章整理改编。)
0

评论Comments