2014-01-21 44 views
0

我有內部4個影片剪輯容器4個影片剪輯和濾鏡名爲 「myShadowFilter」,就像這樣:的ActionScript 3 - 將字符串轉換爲命令

option1BlueBox 

裏面

option1Container 

一個影片剪輯
option2Container 

是一個movieclip裏面

option2BlueBox 

等等。我想這樣做:

option1Container.option1BlueBox.filters = [myShadowFilter]; //line1 
option2Container.option3BlueBox.filters = [myShadowFilter]; //line2 
option3Container.option4BlueBox.filters = [myShadowFilter]; //line3 
option4Container.option5BlueBox.filters = [myShadowFilter]; //line4 

除了具有循環,監守我可能會添加更多的容器,每個容器裏面的影片剪輯。什麼我想要做一個sudo的代碼是:

var containers:int = 1; 
for (var i:int = 1; i<containers + 1, i++) { 
'option' + i + 'Container.option' + i + 'BlueBox.filters = [myShadowFilter];'; 
} 

基本上,我只想一個循環,這將運行所有4個命令。我如何使它工作?它給我錯誤(正如我預期的那樣),說有語法錯誤和冒號。

回答

3

使用Array接入運營商。有關更多詳細信息,請參見this

var containers:int = 1; 
for (var i:int = 1; i<containers + 1, i++) { 
    this['option' + i + 'Container']['option' + i + 'BlueBox'].filters = [myShadowFilter]; 
} 

你也許可以通過給藍盒夾相同的實例名稱(它只需要是當前範圍內是唯一的)進一步簡化了這一點。然後你可以這樣做:

// Create an array of containers 
var containers = [ 
    option1Container, 
    option2Container, 
    option3Container, 
    option4Container 
]; 

// Loop through each container and apply the filter 
// to the blue box container clip 
for (var i = 0; i < containers.length; i ++) 
{ 
    containers[i].option1BlueBox.filters = [myShadowFilter]; 
} 
+0

完美。感謝您的額外簡化。 – user2817200

相關問題