Как присвоить значение переменной во Flash (AS3)? - PullRequest
0 голосов
/ 18 августа 2010

Использование targetCurrent - я могу получить имя мувиклипа, по которому пользователь щелкает.

В функции toggleClick есть оператор трассировки, который говорит:

trace("movieClip Instance Name = " + e.currentTarget);

Окно OUTPUT:

movieClip Instance Name = [object Comp]

В зависимости от того, на что нажимает пользователь, будет установлено значение, связанное с мувиклипом.На этапе есть несколько кнопок переключения: пользователь может включить или выключить мувиклипы.На сцене есть мувиклипы: компьютер, лампочка и телевизор.Пользователь может включить или выключить объекты.

Если пользователь щелкает мувиклип «Компьютер» ...

Я хочу иметь возможность циклически перемещаться по houseArray - икогда цикл находит comp в массиве - в переменной с именем var powerData - он будет хранить значение мощности comp .(Я не уверен, как написать этот процесс в AS3.) В houseArray comp = "2" --so ...

var powerData:int = 2;

                    var houseArray:Object = {lightA:"1", 
                                            lightB:"1", 
                                            lightC: "1"
                                            lightD: "1"
                                            lightE: "1"
                                            comp: "2"
                                            tv: "3"
                                            stove: "4"
                                            laundry: "5"};

1 Ответ

1 голос
/ 18 августа 2010

Поскольку houseArray - это объект, а не массив, вам не нужно перебирать его, чтобы получить значение.Что вам нужно сделать, это получить «Comp», когда вы нажимаете на «Comp» MovieClip.Есть множество способов сделать это.Если имя экземпляра MovieClip - «Comp», вы можете просто сделать это:

var powerData:int = houseArray[e.currentTarget.name.toLowerCase()];
...