【发布时间】:2016-01-03 10:16:27
【问题描述】:
我是 Flash 开发的新手,我正在尝试让当我在游戏中按下模式按钮时,它会改变障碍物的速度。问题是障碍物位于不同的关键帧中,而速度代码位于影片剪辑本身中。它如何告诉不同关键帧中的障碍物它们的速度应该是多少??
【问题讨论】:
标签: flash button actionscript-2 movieclip
我是 Flash 开发的新手,我正在尝试让当我在游戏中按下模式按钮时,它会改变障碍物的速度。问题是障碍物位于不同的关键帧中,而速度代码位于影片剪辑本身中。它如何告诉不同关键帧中的障碍物它们的速度应该是多少??
【问题讨论】:
标签: flash button actionscript-2 movieclip
当用户单击模式按钮时,您需要设置一个变量。
var speed:Number = 5;
modeButton.onRelease = function() {
speed = 10;
}
然后稍后为您的障碍引用该变量...
trace("speed: " + speed);
这是一个超级简单的例子,希望对你有帮助!
【讨论】:
在动画剪辑中声明的变量在定义后的任何帧中都可以使用(即使当它循环回到第 1 帧时,它们仍然可用,即使它们没有在第 1 帧中声明,但最好做法是在第一帧中声明)。
所以基本上......你的问题不应该真的存在。只需将您的数据存储在第 1 帧上声明的变量中。存在问题的唯一方法是,如果您仅在函数本身中有该变量,因此它仅对该函数是本地的......这将是一个问题,无论电影剪辑和关键帧。
只是不要那样做。在函数外声明变量,在函数内使用。
// put this on frame 1
var speed = 1; // this will be accessible anywhere in the clip
// put this wherever your button appears (I assume on frame 1 as well)
yourBtnName.onRelease = function() {
speed = 1.5; // the change will be refleced anywhere that uses it
}
// put this on some other frame and call it at any point
function doSomething() {
trace(speed); // before clicking the button this will trace 1, after 1.5
}
【讨论】: