当前位置: 代码迷 >> Web前端 >> AS3学习札记(7)-display
  详细解决方案

AS3学习札记(7)-display

热度:291   发布时间:2012-11-22 00:16:41.0
AS3学习笔记(7)-display

AS3里所有能在舞台(Stage)上看到的东西都继承自 DisplayObject 。如果让它最终显示出来还需要使用某个 DisplayObjectContainer 的addChild() 或者 addChildAt() 方法把它加到显示列表(display list)里。看看图示:

  显示列表的最根部是 Stage 。Stage 是一个 DisplayObjectContainer ,所有的可见对象是它的 child 或者 child 的 child 。在一个文档的第一帧输入代码:
trace(stage.getChildAt(0));
输出类似于“[object Timeline0_94f120f8fa23a64ca3a80eab162a99a]”。下划线后面的字符串是随机的,每次都不同。删掉时间轴上的代码,绑定文档到一个自定义类,如 TestStage :
package{
?? ?import flash.display.Sprite;? ?
?? ?public dynamic class TestStage extends Sprite{
?? ? ? ?public function TestStage(){
?? ? ? ? ? ?trace(stage.getChildAt(0));
?? ? ? ?}
?? ?}
}
输出:“[object TestStage]”。可见,Flash IDE 的默认编辑环境,也就是 AS2 里的 _root ,现在是 Stage 的第一个 child 。注意上面的代码,我把 TestStage 类定义为 dynamic :
public dynamic class TestStage extends Sprite{
AS3 里 DisplayObject 不是动态类,所以如果想像以前那样使用点语法(mc1.mc2.txt1.text)或者 getChildByName() 方法访问 Flash IDE 创建的 MC ,必须把类定义为动态,不然会报错:
“ReferenceError: Error #1056: Cannot create property test_mc on TestStage.”
  现在在 Flash IDE 舞台上随便创建一个影片剪辑,命名为 test_mc ,修改上面的 trace 代码为
trace(stage.getChildAt(0).test_mc.name);
输出:“test_mc”。
在 AS2 里访问同样的 MC 代码为:
trace(_root.
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1738.html
  相关解决方案