我們將測試一下,看看AS2的this和AS3的this有什麼不同之處!
ActionScript 2
trace(this); trace(this instanceof MovieClip);
輸出的結果為:
_level0 true
_level0 是Flash Runtime Level的最底層,只要任何的swf被載入這一層,便會改變成以欲載入swf的FrameRate。
ActionScript 3
trace(this); trace(this is MovieClip);
輸出的結果為:
[object MainTimeline] true
在AS3,它已經變成MainTimeline,但是它終究還是個MovieClip~為什麼呢?
我們看看下面這個指令~
trace(describeType(MainTimeline));
印出一大堆...
<type name="MyTest_fla::MainTimeline" base="Class" isDynamic="true" isFinal="true" isStatic="true"> <extendsClass type="Class"/> <extendsClass type="Object"/> <accessor name="prototype" access="readonly" type="*" declaredBy="Class"/> <factory type="MyTest_fla::MainTimeline"> <extendsClass type="flash.display::MovieClip"/> <extendsClass type="flash.display::Sprite"/> <extendsClass type="flash.display::DisplayObjectContainer"/> <extendsClass type="flash.display::InteractiveObject"/> <extendsClass type="flash.display::DisplayObject"/> <extendsClass type="flash.events::EventDispatcher"/> <extendsClass type="Object"/> ....省略
也就是說MainTimeline是繼承MovieClip~