如何将单个脚本用于多个帧
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()
正确并且 运行.
我在 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()
正确并且 运行.