是的,我正在尝试制作游戏,我想要一些代码,每当我放置时,某些东西都适用于所有对象。例如我有:背景,灯,播放器和文本。我想要它所以我不必使Lamp,Background和Text成为符号,但只要我输入它就会有一些代码引用它们,所以我不必单独列出它们。
答案 0 :(得分:0)
如果您希望影响特定的已知显示对象集,可以在创建时将它们添加到数组中,然后将该数组用作对象集合以执行您需要的任何操作。
这里的代码是程序性的,而不是OOP,但应该给你一个要点。如果将其粘贴到FLA文件中并创建三个对象(实例名称),那么您可以使用此方法可以帮助您使用该文档。
这可以变得更高级,创建自己的AS3类,并使其变得聪明,以处理可能需要的任何视觉显示更改。但是你只需要让它变得像你的需要一样复杂。
var myDisplayObjs_arr:Array = [];
function addObj(obj:DisplayObject):void{
myDisplayObjs_arr.push(obj);
}
function affectObjs(config:Object):void{
// config object that includes things like alpha, colorTransform, whatever
for (var i:int = 0; i<myDisplayObjs_arr.length; i++){
var dispObj:DisplayObject = myDisplayObjs_arr[i];
if (config.alpha) {
dispObj.alpha = config.alpha;
}
if (config.scaleX) {
dispObj.scaleX = config.scaleX;
}
}
}
addObj(lamp);
addObj(background);
addObj(header_txt);
// Call affectObjs(), passing it an object of some basic changes
affectObjs({alpha:.5, scaleX:2});