Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   повторный AddChild объекта (http://www.flasher.ru/forum/showthread.php?t=114575)

Stop Black PR! 02.08.2008 18:19

повторный AddChild объекта
 
Есть самодельный шрифт, предоставленный мне в виде набора векторных мувиков.

Требуется рандомно заполнять поле символами этого шрифта.

я делаю нечто следующее:

Код:

letters[0]=new e();
letters[1]=new i();
letters[2]=new r();
letters[3]=new s();

затем заполняю поле объектами класса Letter, которые умеют:
1) делать общие для всех букв действия (реакцию на мышь и т д)
2) аттачить рандомную букву.

Изначально я собирался по рандому вытягивать объект и добавлять его к объекту Letter:

Код:

var letterNum:uint = Math.floor((Math.random()*App.myView.letters.length));
addChild(App.myView.letters[letterNum]);

Но оказалось, что при таком случае срабатывают только последние добавления. Если цеплять объекты напрямую, т.е. писать в Letter

Код:

var myLetter = new e();
addChild(myLetter);

То совершенно непонятно как получить случайную букву, т.е. создать объект со случайным номером из заданного набора классов-мувиков.

Поскольку объектов на поле должно быть 375, и они ещё меняют прозрачность, реагируют на события и так далее, то каждый объект делается максимально легким, т.е., например, пихать алфавит в кадры и вызывать переход на нужный кадр или подобное решение не подойдут в принципе никак.

Буду рад выслушать любые идеи по теме. Может кто то сталкивался с самодельными алфавитами и нашел интересные способы их реализации во флеше.

wvxvw 02.08.2008 18:49

Код:

var clips:Array = [aaa, bbb]; //classes specified in "linkage" field
var i:int = 100;
var s:Sprite;
var c:Class;
while(--i)
{
        c = clips[int(Math.random()*clips.length)] as Class;
        s = new c() as Sprite;
        s.x = Math.random()*stage.stageWidth;
        s.y = Math.random()*stage.stageHeight;
        addChild(s);
}


Stop Black PR! 02.08.2008 19:08

спасибо огромное, сам бы не дошел


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

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