Flash AS3 eval () - PullRequest
       4

Flash AS3 eval ()

2 голосов
/ 13 августа 2011

Я новичок в AS3.У меня в звуке 15 звуков;Я импортировал их в библиотеку и экспортировал все звуки с именем s1, s2, s3, ... s15

. Я создал функцию, которая получает номер и затем воспроизводит звук.

В AS2 я мог использовать evalкак eval("s" + n), но в AS3 я не могу!

Мой код AS3:

function PlaySound(Num:Number=NaN) {
    var mySound:Sound = new ["s"+Num](); 
    mySound.play();
}

Очевидно, я получаю сообщение об ошибке!

Кто-то может помочья?

Бест, Флавио

Ответы [ 2 ]

7 голосов
/ 13 августа 2011

Эквивалентный код AS3 будет:

var soundClass:Class = getDefinitionByName("s" + Num) as Class;
var mySound:Sound = new soundClass(); 
0 голосов
/ 13 августа 2011

Поместите эти звуковые объекты в массив, скажем, arr ["s1"] = s1, arr ["s2"] = s2 и т. Д. (Да, в AS3 массив на самом деле является хэш-картой.)

Как только это будет сделано, вы увидите, что когда вы получаете число (Num), сделайте это

function PlaySound(Num:Number=NaN) {
  var mySound:Sound = arr["s"+Num];
  mySound.play();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...