Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Динамичное имя Класса (http://www.flasher.ru/forum/showthread.php?t=204990)

dvrbear 15.11.2013 19:56

Динамичное имя Класса
 
На примере со звуком хотелось бы разобраться как можно подставить рэндомно новый класс.

Код AS3:

var sndArr:Array = [new Snd1(), new Snd2(), new Snd3(), new Snd4(), new Snd5()];
var snd:Sound = sndArr[Math.random() * 5];
snd.play();

Ну или както так создавать "new Snd" + Math.random() * 5

Подскажите как правильно написать.

Wolsh 15.11.2013 20:02

Код AS3:

var sndArr:Array = [Snd1, Snd2, Snd3, Snd4, Snd5];
var snd:Sound = new sndArr[uint(Math.random() * 4)]();
snd.play();


dvrbear 15.11.2013 20:05

Огромное спасибо!
Особенно за оперативный ответ )))

gloomyBrain 15.11.2013 20:16

Код AS3:

var sndArr:Array = [Snd1, Snd2, Snd3, Snd4, Snd5];
var snd:Sound = new sndArr[uint(Math.random() * 4)]();

Не совсем верно, последний звук (с индексом 4) никогда не будет играть. Должно быть:
Код AS3:

var sndArr:Array = [Snd1, Snd2, Snd3, Snd4, Snd5];
var snd:Sound = new sndArr[int(Math.random() * sndArr.length)]();


Dukobpa3 15.11.2013 20:24

Код AS3:

var cl:Class = getDefinitionByName('Snd' + String(index)) as Class;
var sound:Sound = new cl() as Sound;


dvrbear 15.11.2013 20:25

Я тоже на 5 заменил - думаю это маленькая опечатка.
Главное суть уловил.

А что на счет собирания из строки ???
Помните как в AS2 ?
obj = eval("_root.car.door" + number);

понимаю что предварительно такое можно в sndArr сгенерить - но всеже на примере одной строки возможно или нет ( "new Snd" + Math.random() * 5) ???

Добавлено через 1 минуту
Ловите мысли на лету.
"Не успел позвонить вы уже двери открываете" )))

Всем огромное спасибо!!!


Часовой пояс GMT +4, время: 13:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.