如果每个 SWF 同时进行非常重要,我会通过 JavaScript 控制它。
假设每个 SWF 文件都是一个简单的 MovieClip,我会这样做:
将每个 FLA 文件的 Document Class 设置为:
package {
import flash.display.MovieClip;
import flash.external.ExternalInterface;
public class ExternalInterfaceControlledMC extends MovieClip {
public function ExternalInterfaceControlledMC() {
this.stop();
if (ExternalInterface.available) {
try {
ExternalInterface.addCallback("setFrame", jsSetFrame);
} catch (error:Error) {
trace("An Error occurred:", error.message);
}
} else {
trace("ExternalInterface is not available");
}
}
private function jsSetFrame(value:String):void {
var frameNumber = int(value) % this.totalFrames;
this.gotoAndStop(frameNumber);
}
}
}
在 JavaScript 中,您可以将每个 SWF 实例的引用添加到数组中,然后使用计时器告诉每个 SWF 前进到帧号。
var swfElements; //Array
var currFrame = 1;
function onPageLoad() {
//Init timer
setInterval("progressFrame", 1000 / 30); //30 fps
}
function progressFrame() {
for (var i = 0; i < swfElements.length; i++) {
swfElements[i].setFrame(currFrame);
}
currFrame++;
}
请注意,此代码没有经过任何测试,仅用于说明我的思路。