Flash 外部SWF到外部SWF时间线通信、闪存、AS2

Flash 外部SWF到外部SWF时间线通信、闪存、AS2,flash,actionscript-2,external,timeline,Flash,Actionscript 2,External,Timeline,闪存CS4,AS2 我做了一次互动式的旅行。可以在这里看到: 单击底部图像 4个截面中的每一个都是外部swf,并在1级上加载。我希望在一个swf平面图上有一个按钮,用于加载另一个swf设施租赁,并在swf的时间表上精确定位特定的框架 我尝试了很多不同的方法,都是在第一帧加载swf,而忽略了其他关于时间轴的代码。我知道我可以将这个swf分解成更多的外部swf,并得到我想要的结果,但如果可以的话,我宁愿使用代码 我想做的事可能吗?如果是,我该如何编写代码 谢谢 你想做的绝对是可能的。您需要等待SWF

闪存CS4,AS2

我做了一次互动式的旅行。可以在这里看到:

单击底部图像

4个截面中的每一个都是外部swf,并在1级上加载。我希望在一个swf平面图上有一个按钮,用于加载另一个swf设施租赁,并在swf的时间表上精确定位特定的框架

我尝试了很多不同的方法,都是在第一帧加载swf,而忽略了其他关于时间轴的代码。我知道我可以将这个swf分解成更多的外部swf,并得到我想要的结果,但如果可以的话,我宁愿使用代码

我想做的事可能吗?如果是,我该如何编写代码


谢谢

你想做的绝对是可能的。您需要等待SWF加载后才能告诉它转到特定帧。最简单的方法是使用MovieClipLoader类

var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);

function onLoadComplete(loadedClip) {
    loadedClip.gotoAndStop(5);
}

loader.loadClip("floorplan.swf", targetClip);
这将把floorplan.swf加载到名为targetClip的占位符中,加载后,必须跳转到第5帧


有关更多信息,请参阅MovieClipLoader文档:

,因为您可以完美地加载它们,我想这不是问题所在。一个常见的问题是,当剪辑完全加载时,您需要调用gotoAndStop函数,当调用MovieClipLoader侦听器的onLoadInit处理程序时,您将调用该函数。

尝试以下操作:

var MC1:MovieClipLoader = new MovieClipLoader();
MClistener = new Object();
MClistener.onLoadComplete = function() {
     trace("LOADED COMPLETED");
};    
MC1.addListener(MClistener); 
MC1.loadClip("Whatever.swf", "adLoader");

我一直在寻找根swf和加载的swf之间的通信,这是非常有用的

var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
function onLoadComplete(loadedClip) {
  loadedClip.gotoAndStop(2);
}
loader.loadClip("chapter1.swf", targetClip);

我唯一搞不懂的是如何使onpress操作与加载的swf的第二帧通信,而不是onLoadComplete操作。

ok仍然不起作用。。。下面是我正在使用的代码:btnFLRcafe.onRelease=function{var-loader:MovieClipLoader=new-MovieClipLoader;loader.addListenerthis;function-onloadecompleteloaddedclip{loadedClip.\u root.mcRENTALS.gotoAndStopCAFE;}loader.loadClipmaps\u 92Tri\u RentalsMain.swf,1;}我已将此代码放在MC中的操作时间线上,该时间线上有按钮btnFLRcafe.cont。当按下btnFLRcafe时,我希望它将maps_92Tri_RentalsMain.swf加载到1级,并从MC mcRENTALS中播放名为CAFE的帧。现在,该按钮将maps_92Tri_RentalsMain.swf加载到级别1,但不会进入时间线上的CAFE。请帮忙!谢谢你的问题可能是范围问题。因为,如果我读对了,那么加载程序和侦听器都是在onRelease函数中声明的。尝试在onRelease事件外部声明它们,并在其内部调用loader.loadClip。在AS2中,作用域可能会很奇怪,尤其是在使用它时。您还可以尝试在onRelease函数var t=this之外设置一个变量;然后将侦听器添加到该变量:loader.addListenert;我还做了一些跟踪,看看是否调用过onLoadComplete事件。仍然不起作用。未调用onLoadComplete。。。跟踪没有显示。我不知道该怎么办。也许试着把代码从电影剪辑中移到主时间线中。如果加载新的.swf时包含代码的movieclip不存在,则永远不会收到onLoadComplete事件。_root.mcRENTALS.gotoAndStopCAFE是否转到包含btnFLRcafe的剪辑被删除或更改的帧?您也可以将侦听器移动到根剪辑:load.addListener\u root,然后将onLoadComplete函数放在根剪辑中。对于后续查询,最好发布一个新问题,更多的人会以这种方式看到它。我无法实现这一点。。我使用了以下代码:btnFLRcafe.onRelease=function{loader.loadClipmaps_92Tri_RentalsMain.swf,0;}var loader:MovieClipLoader=new MovieClipLoader;loader.addListenerthis;函数onLoadCompleteloadedClip{loadedClip.gotoAndStopCAFE;}我尝试了各种安排。。。这将加载swf,但它仍然没有沿着时间线移动。我想看来我得把这两个外景合二为一。。