AS3-Flash CS6如何制作适用于所有对象的代码

时间:2015-02-11 15:58:42

标签: actionscript-3 flash

是的,我正在尝试制作游戏,我想要一些代码,每当我放置时,某些东西都适用于所有对象。例如我有:背景,灯,播放器和文本。我想要它所以我不必使Lamp,Background和Text成为符号,但只要我输入它就会有一些代码引用它们,所以我不必单独列出它们。

1 个答案:

答案 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});