Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何判断按钮是否在不同的关键帧中按下?_Flash_Button_Actionscript 2_Movieclip - Fatal编程技术网

Flash 如何判断按钮是否在不同的关键帧中按下?

Flash 如何判断按钮是否在不同的关键帧中按下?,flash,button,actionscript-2,movieclip,Flash,Button,Actionscript 2,Movieclip,我是flash开发的新手,我正在尝试这样做,当我在游戏中按下模式按钮时,它会改变障碍物的速度。问题是障碍物位于不同的关键帧中,速度代码在电影剪辑本身中。它如何告诉不同关键帧中的障碍物其速度应该是多少?当用户单击模式按钮时,您需要设置一个变量 var speed:Number = 5; modeButton.onRelease = function() { speed = 10; } 然后在以后的障碍中引用该变量 trace("speed: "

我是flash开发的新手,我正在尝试这样做,当我在游戏中按下模式按钮时,它会改变障碍物的速度。问题是障碍物位于不同的关键帧中,速度代码在电影剪辑本身中。它如何告诉不同关键帧中的障碍物其速度应该是多少?

当用户单击模式按钮时,您需要设置一个变量

    var speed:Number = 5;

    modeButton.onRelease = function() {
        speed = 10;
    }
然后在以后的障碍中引用该变量

    trace("speed: " + speed);

这是一个超级简单的例子,希望对大家有所帮助

movieclip中声明的变量在定义后的任何帧中都可用(即使它循环回到第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
}

问题被标记为AS2。他还指定代码在关键帧内,但您使用特定于类的标识符。此外,movieclip中声明的变量不是“全局”变量。是的,这将是一个有效的范围。但不是“全球”。你的逻辑是可行的,但那代码对他根本不起作用。很公平——我错过了AS2标签。我会更新以反映您的观点。