我在将MovieClips附加到类的不同实例时遇到了问题。老实说,我对ActionScript 3还是个新手,所以这个问题可能有点麻烦。虽然我做了调查,但没有找到我期望的答案。
function AddNewElement(clip:MovieClip, array:Array, name:String, firstValue:int, secondValue:int):Element您可能已经猜到了,这是我创建的函数,用于以动态方式创建类的实例并将它们添加到数组中。不过,我在第一个参数上遇到了问题。如何将MovieClip从我的库传递到此函数?
我看到了很多类似问题的答案,比如每个MovieClip都应该是一个独立的类,但由于我有大约40个MC,我想把它们都用于或多或少相同的事情上,我觉得这会扼杀类的目的,真的。
我应该如何处理这个问题?
发布于 2013-01-05 11:37:25
当你在闪存中创建一个MovieClip时,它会给你一些选项,其中一个选项是让闪存为该MovieClip创建一个类。也就是说,如果您将该选项应用于所有40个影片剪辑,则可以创建类似于主影片剪辑类的内容,并让每个影片剪辑类扩展主影片剪辑类。唯一的问题是,您必须为40个影片剪辑中的每一个创建一个.as文件,并将extends MasterMovieClip添加到类声明中。例如:
public class MasterMovieClip extends MovieClip {
// All of the variables and methods pertaining to each movie clip go here
}那么每个单独的影片剪辑将类似于这个类。
public class IndividualMovieClip_1 extends MasterMovieClip {
// Just include a constructor, even though you don't have to
}现在,您所有的单独影片剪辑都将具有相同的方法和变量,只要这些方法和变量是公共的,而不是私有的。
使用此方法时,您必须创建全部40个类,但是,在Flash中创建新影片剪辑时可能会有一种方法来设置影片剪辑扩展的类,这样您就不必创建40个不同的类。
更新:
我重读了你的问题,并想到了其他一些东西,我在第一句话中谈到的选项,关于Flash提供创建类的选项。如果没有给出一个类,那么Flash会在运行时动态创建一个类。我认为当它动态创建一个类时,它不会保持与库电影剪辑相同的名称,所以当你试图将电影剪辑的静态名称传递给你的函数时,它不知道你在说什么,并抛出一个运行时错误。
https://stackoverflow.com/questions/14168266
复制相似问题