外部swfs之间的平滑过渡。

时间:2011-08-25 17:48:39

标签: flash actionscript-3

我正试图回到闪光灯。试着在这里写一些代码但是......好吧,让我告诉你。

我想要和现在拥有的是一个主要的swf,它根据按下的按钮加载资源。我有3个外部SWF(为了这个例子,我们调用初始加载的swf“indexExt.swf”,文件2“f02.swf”和文件3,“f03.swf”)并且在每个中,有一个从第1帧到第10帧的图层。

在第1帧上,第5帧是“outro”标签,“outro”标签,第10帧是“结束”标签。

indexExt.swf在主swf的初始加载时加载。

至于我的按钮,我在主swf舞台上给出了我的按钮,实例名称与外部swfs同名,因此使用此行event.target.name + ".swf"我可以调用em而无需重写每个按钮的代码等。

用于正常导入的按钮代码如下:

f01.addEventListener(MouseEvent.CLICK,btnclick);
f02.addEventListener(MouseEvent.CLICK,btnclick);


function btnclick(event:MouseEvent):void{

removeChild(loader);

var newSwfRequest:URLRequest = new URLRequest( event.target.name + ".swf");

loader.load(newSwfRequest);
loader.x = Xpos;
loader.y = Ypos;
addChild(loader);

}

现在我遇到的问题是我不知道如何定位点击/导入/加载的内容。

总的来说,我想要做的是,将上面的按钮代码重做,如下所示:

// non code but you get the idea //


on press, if something is loaded, go to and play its "outro" frame label.
if "end frame label" load in event.target.name + ".swf"

我希望它不会混淆。基本上我想要的是按下按钮,无论加载什么电影,播放outro标签和IF,当“结束”标签被点击时,加载用户点击的任何内容。

我认为这是一种合理的做法,但我倾向于选择最难的方法。我不在附近的专家,但任何提示/提示/代码等,我很乐意接受。

1 个答案:

答案 0 :(得分:1)

您需要为loader对象添加一个侦听器才能完成整个事件。这将为您提供您正在寻找的参考。然后,您可以告诉该对象(如果已设置)在单击按钮时转到所需的帧。

var loaded:Object;

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoaded);

function handleLoaded(e:Event):void {
  loaded = e.target.content;
}

btn.addEventListener(MouseEvent.CLICK, handleClick);

function handleClick(e:MouseEvent):void {
  if (loaded) {
    loaded.gotoAndPlay("outro");
  }

  //load new swf
}