0
對,我正在嘗試製作一款遊戲,並且我希望有一點代碼能夠適用於所有對象。例如我有:背景,燈,播放器和文本。我喜歡它,所以我不需要使燈,背景和文本成爲一個符號,但只要輸入它就可以引用一行代碼,所以我不必單獨列出它們。AS3-Flash CS6如何製作適用於所有對象的代碼
對,我正在嘗試製作一款遊戲,並且我希望有一點代碼能夠適用於所有對象。例如我有:背景,燈,播放器和文本。我喜歡它,所以我不需要使燈,背景和文本成爲一個符號,但只要輸入它就可以引用一行代碼,所以我不必單獨列出它們。AS3-Flash CS6如何製作適用於所有對象的代碼
如果您希望影響一組特定的已知顯示對象,那麼您可以在創建它們時將它們添加到數組中,然後將該數組用作對象集合來執行任何您需要的操作。
這裏的代碼是程序性的,而不是OOP,但應該給你的要點。如果您將其粘貼到FLA文件中並創建三個對象(實例名稱),那麼您就可以獲得這種方法可以幫助您處理的體面示例。
這可以變得更加先進,創建ASA自己的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});
我覺得這個問題太寬泛了。你的例子也令我困惑。你能解釋一下你想做什麼嗎?顯示您目前擁有的代碼示例以及您想如何改進它? – Aaron 2015-02-11 18:28:16
您可以通過DisplayObjectContainer遍歷舞臺/符號,請參閱http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html,然後可能會將相關的子代作爲一個函數參數...!? - 希望這有助於。 – Zze 2015-02-17 10:30:30