如何将单个脚本用于多个帧

How to use a single script for multiple frames

我在 Flash 中构建了一个包含 50 个状态的拓扑训练器。 我为每个州制作了一个框架。这50帧的代码应该全部相同,而图形延迟。如果我将代码放在 50 帧中的第一帧上,它只在那里工作。如果我把代码放在每一帧,我会得到很多错误,因为所有的功能都加倍了。

有没有办法让所有52帧都运行同一个代码?

感谢您的宝贵时间,

更多信息:

红色方块表示 50 个州。那是纯粹的图形。 我为所有编码制作了一个单独的层。 蓝色圆圈表示一个单一状态框架的(工作)代码。 所有 50 个图形框架都想使用此代码。 @Atriace:您的解释是否解决了这个特定问题?

谢谢,

贾斯汀

更新

对于框架,需要注意的重要一点是,只有在初始化之后,事物才会存在。假设 Frame1 上有蓝色方块,Frame2 上有红色圆圈。

播放头从左侧开始向右移动。当它到达每一帧时,它会创建它在那里找到的任何东西,无论是符号还是代码。这意味着如果我们尝试将红色圆圈与 Frame1 上的事件侦听器连接起来,它将失败;自然是因为还没有创建红圈。

stop();

function hello(e:Event):void {
    var destination:int = (currentFrame == 1) ? 2 : 1;
    trace("Hello " + e.currentTarget.name + ": " + currentFrame + " of " + totalFrames + " > " + destination)
    gotoAndStop(destination)
}

BlueSquare.addEventListener("click", hello);
RedCircle.addEventListener("click", hello); // <<< this will fail

但是,如果我们将那条线放在与创建红色圆圈时相同的帧上,它将 link 到 hello() 正确并且 运行.