是的,有理由保持对舞台的参考。一个例子是,如果要添加事件侦听器的阶段,需要确保他们在未来被清理或希望在事件可能超出直接控制下面是一个例子:
public class Demo
{
private var _stage:Stage;
public function Demo()
{
super();
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
public function destroy():void
{
if (_stage)
{
_stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
_stage.removeEventListener(Event.MOUSE_LEAVE, onMouseLeave);
_stage = null;
}
}
private function onAddedToStage(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
_stage = stage;
_stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove, false, 0, true);
_stage.addEventListener(Event.MOUSE_LEAVE, onMouseLeave, false, 0, true);
}
private function onMouseMove(event:MouseEvent):void
{ /* Do something */ }
private function onMouseLeave(event:Event):void
{ /* Do something */ }
}
谢谢,对不起,忽略了舞台布置 - 我会更新这个问题。我只指定了类型。不过,了解这两种方法之间的功能差异会很好。从逻辑上讲,我明白使用'舞台'简直就是更简单和更清洁的开箱即用。 – Structure
2之间的唯一真正区别是一个是全局变量(stage),另一个是局部变量var(myStageInstance),但是因为对象通过引用传递,所以2之间确实没有区别。 –
充其量只有我能想到的是如果你想延长舞台课程。然而,我甚至不确定这是否可能,它可能是最后一堂课,可能是。 –