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
Actionscript 3 在Flash中,具有相同类实例的两个按钮是否可以执行不同的操作?_Actionscript 3_Flash_Button - Fatal编程技术网

Actionscript 3 在Flash中,具有相同类实例的两个按钮是否可以执行不同的操作?

Actionscript 3 在Flash中,具有相同类实例的两个按钮是否可以执行不同的操作?,actionscript-3,flash,button,Actionscript 3,Flash,Button,假设我在Flash中有一个特定的button类,名为cont_button,应该用来打破循环,但我想不止一次地使用这个类。有没有一种方法可以给这个类的每一个实例提供某种参数,这样它就知道需要转到哪个帧 例如: 我在第200帧上有一个cont_按钮的实例,在200和210之间有一个循环。此cont\u按钮执行gotoAndPlay(211)。但稍后我在第315帧上有另一个按钮实例,在315和325之间有一个循环。有没有办法让每个实例通过使用变量知道它具体需要转到哪个帧?还是我必须为每个单独的脚本创

假设我在Flash中有一个特定的button类,名为
cont_button
,应该用来打破循环,但我想不止一次地使用这个类。有没有一种方法可以给这个类的每一个实例提供某种参数,这样它就知道需要转到哪个帧

例如:

我在第200帧上有一个
cont_按钮
的实例,在200和210之间有一个循环。此
cont\u按钮执行
gotoAndPlay(211)
。但稍后我在第315帧上有另一个按钮实例,在315和325之间有一个循环。有没有办法让每个实例通过使用变量知道它具体需要转到哪个帧?还是我必须为每个单独的脚本创建一个actionscript文件


ActionScript非常新,因此我非常感谢您的帮助,如果您推荐的AS3有很好的编码参考,我将很高兴地查看这些参考。

当然,这是可能的。一种方法是将帧编号设置为类变量,当单击按钮时,它们引用存储在其中的任何值,而不是硬编码的数字。为了更好地理解,您可以发布button类的相关部分吗?

正如您所说,您需要向button的每个实例传递一个参数。有很多不同的方法可以做到这一点,但我很想通过实例名来实现

您可以将每个按钮命名为loopBreakTo211、loopBreakTo326等,然后在您的按钮类中:

var breakFrame:Number = Number(name.replace("loopBreakTo", ""));
(parent as MovieClip).gotoAndPlay(breakFrame);
诚然,这不是一种非常稳健的方法(例如,如果按钮名称不正确并且breakFrame最终为NaN,那么它将中断,因此您可能希望为此添加一个检查),但它将参数与实例一起保留,而不是保留在某个时间线中