AS3进入控制阶段

时间:2013-07-13 21:09:29

标签: actionscript-3 flash

我正在构建Flash游戏,我这样做:

MainStage,有11帧 Mainstage Loads> Lobby.swf(1帧) 大厅载荷> Arrows.swf(1帧)

我只想从Arrows.swf控制主舞台,获取当前帧,右箭头mainStage.current帧+ 1,左箭头mainStage.current帧-1

我尝试过父/子方法

this.parent.parent
parent.parent
this.root
parent.root

每个组合,我也在跟踪,当我最终点击mainStage时,它说不能将舞台转换为我理解的显示对象。

但是我怎样才能获得“mainstage”针的当前帧并用gotoAndPlay或其他类似方法控制它?

1 个答案:

答案 0 :(得分:0)

我已经解决了。

我没有控制主舞台我做的是什么,当我加载左右箭头时,我减少了大厅层中的主舞台层我为自定义事件附加了一个事件监听器。

在箭头电影中我写了一个函数来调度事件,这里是我使用的代码行

在你想要控制的电影的“主要”阶段:

//ball loader prep and load
var ballLoader:Loader = new Loader();
var ballRequest:URLRequest = new URLRequest("lobbyBalls.swf");
ballLoader.load(ballRequest);
ballLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, ballsLoaded);

function ballsLoaded(event:Event):void{
    trace("ball Loader complete");
    ballLoader.x = 50;
    ballLoader.y = 200;
    stage.addChild(ballLoader);
    ballLoader.content.addEventListener("Previous", ctrlPrevFrame);
    ballLoader.content.addEventListener("Next", ctrlNextFrame);
}

在您想要控制的电影中

import flash.events.Event;

leftArrow.addEventListener(MouseEvent.CLICK, prevEvent);
rightArrow.addEventListener(MouseEvent.CLICK, nextEvent);

function prevEvent(event:Event):void{
    trace("prev");
    dispatchEvent(new Event("Previous", true));
}

function nextEvent(event:Event):void{
    trace("next");
    dispatchEvent(new Event("Next", true));
}

非常感谢....