2009-10-19 4 views
0

Как добавить переменную, которая изменяется с фиктивной переменной в цикле:Проблема в функции ActionScript

function resetAll(menuNum){ 
    trace(menuNum); 
    for (i=0; i<=7; i++){ 
    if(menuNum != 1){ 
     menu_all_mc.this["btn_"+i].gotoAndStop("off"); 
    } 
    } 
} 

это [ «БТН _» + я] Don `T работа

мне нужно пройти имя btn как: btn_1 и следующий цикл btn_2 ...

+2

FYI: говоря "это не работает", без предоставления «ожидаемым результат "не помогает другим – mkoryak

ответ

0

Я строго угадываю (я не делаю ActionScript, но JS), но если ваша переменная i остается неизменной, тогда вам нужно будет использовать закрытие улавливать и связывать это i на месте:

function resetAll(menuNum){ 
    trace(menuNum); 
    for (i=0; i<=7; i++){ 
    (function(i){ 
     if(menuNum != 1){ 
      menu_all_mc.this["btn_"+i].gotoAndStop("off"); 
     } 
    })(i); 
    } 
} 

Дайте мне знать, если это не поможет. Также убедитесь, что ключевое слово this ссылается на правильный контекст выполнения.

Редактировать: this не может быть указан так, вы уверены, что это не только menu_all_mc["btn_" +i]? this не является свойством объекта, если вы явно не определяете его как таковой.

o = {}; 
trace(o.this==undefined) 

оценил бы как истинный, потому что он никогда не определялся. this в области функций будет ссылаться на текущий контекст выполнения, но не префикс его другим объектом.

Можете ли вы уточнить, какой объект принадлежит .btn1 и т. Д.?

+2

Спекуляция на языке, который вы не знаете, не очень полезна. –

+0

Это было быстро, спасибо большое! – Mango

0
menu_all_mc.this["btn_"+i].gotoAndStop("off"); 

this не может быть членом класса, я предполагаю, что вы хотите

menu_all_mc["btn_"+i].gotoAndStop("off"); 

или даже

menu_all_mc[this["btn_"+i]]gotoAndStop("off"); 
Смежные вопросы