我在Flash中构建了一个由50个州组成的拓扑结构。 对于每个州我制作了一个框架。这50帧的代码应该对所有人都相同,而图形延迟。如果我把代码放在50帧中的第一帧,它只在那里工作。如果我把代码放在每一帧都会出现很多错误,因为所有函数都是双倍的。
是否所有52帧都可以运行相同的代码?
感谢您的时间,
更多信息:
红色方块表示50个州。这是纯粹的图形。 我为所有编码创建了一个单独的层。 蓝色圆圈表示单个状态帧的(工作)代码。 所有50个图形框架都想使用此代码。 @Atriace:你解释这个特殊问题的解释是什么?
谢谢,
贾斯汀
答案 0 :(得分:1)
要注意框架的重要一点是,事情在初始化之后才会存在。假设在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
但是,如果我们将该单行放在与创建红色圆圈相同的帧上,它将正确链接到hello()
并运行。