Как использовать Objects.function, если Objectsname взято из String - PullRequest
0 голосов
/ 06 февраля 2012

Мне было интересно, выполнима ли эта концепция:

Сценарий: 4 области на 1 сцене, которые очень похожи (например, веб-камера, каждая область имеет одинаковые функции)

Кнопочные объекты нумеруются (например, в области 1 есть кнопка воспроизведения1, кнопка отключения звука1, кнопка имени1, метка имени1 и т. Д.)

каждая область получает кнопку закрытия, которая закрывает / закрывает область. (Close1, close2, close3 ...)

Я хочу заархивировать следующее:

if(close1.isPressed){
function invisall(1);
}

/*
 * instead of writing
 * if(close1.isPressed){
 * playbutton1._visible=false;
 * mutebutton1._visible=false;
 * }else if(close2.isPressed){
 * playbutton2._visible=false;
 * mutebutton2._visible=false;
 * etc. resulting in an enormous block.

 * the interesting part. buttonNr gets added via String to become a real buttonname(eg
 * playbutton1 as mentioned above).*/

function invisall(int buttonNr){
String newPlayButtonObjectName="playbutton"+buttonNr;
newPlayButtonObjectName._visible=false;

String newMuteButton="mutebutton"+buttonNr;
newMuteButton._visible=false;
}

this should do the trick via dynamic Nr at the end of each default button(eg
playbutton)
but ofc
"playbutton1"._visible=false;
doesnt work because playbutton1 is still a String.
how can i take the String as a Buttonname/ButtonObject?
do i need to write an new function? this would destroy the purpose of less code.

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

ура

1 Ответ

1 голос
/ 06 февраля 2012
function invisall(int buttonNr){
  this["playbutton"+buttonNr]._visible=false;
  this["mutebutton"+buttonNr]._visible=false;
}

Надеюсь, это то, что вы хотите.

...