显示实例与普通实例的区别:
例
打开flash面板,把图层一的名称改为"as"图层,单击as图层的第一
帧,打开动作面板,输入下列代码:
import flash.display.Sprite;
import flash.events.Event;
var sprite:Sprite =new Sprite();
sprite.addEventListener (Event.ADDED,addEnterFrame);
sprite.addEventListener (Event.REMOVED,removeEnterFrame);
//显示实例添加到显示列表时,触发enterFrame事件
function addEnterFrame(evt:Event):void
{
trace("added");
evt.target.addEventListener(Event.ENTER_FRAME ,enterFrame);
}
//显示实例从显示列表删除时,删除enterframe事件
function removeEnterFrame(evt:Event):void
{
trace("removed");
evt.target.removeEventListener(Event.ENTER_FRAME ,enterFrame);
}
//检测enterFrame事件的函数
function enterFrame(evt:Event):void
{
trace("enterframe");
}
//注册单击事件,便于测试
stage.addEventListener (MouseEvent.CLICK,addRemove);
function addRemove(evt:Event):void
{
//如果显示实例位于显示列表中
if(evt.target.contains(sprite))
{
//从显示列表中删除显示实例
evt.target.removeChild(sprite);
//如果显示实例不在显示列表中
}else
{
//添加显示实例到显示列表
evt.target.addChild(sprite);
}
}
显示实例与普通实例有相同的地方,它们都是通过new来创建,但也有不同的地方,显示实例
要通过addChild()方法才能显示出来,否则显示实例将游离在舞台之外,在处理显示实例的
事件时一定要注意这个区别。