Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   загрузка переменных, дублирование клипов и задержки проигрывания (http://www.flasher.ru/forum/showthread.php?t=86228)

thorr 10.10.2006 18:11

загрузка переменных, дублирование клипов и задержки проигрывания
 
Есть задача:
1) на странице есть несколько одинаковых флэшек (сколько - неизвестно. страница генерится динамически),
2) каждому из экземпляров этой флэшки передается свой набор переменных (списки тоже генерятся динамически - пока не решил, будут ли это текстовые файлы или строки в вызове флэша в html-е. размер списка для каждого также неизвестен, т.е. может 2, а может 20), например, как элементы массива разной длины для каждого из экземпляров,
3) переменные хранят имена файлов картинок, загружаемых во флэш в виде новых мувиков, продублированных из типового мувика с анимацией,
4) причем этих типовых мувиков несколько, и надо выбрать какой из них дублировать, исходя из еще одной переданной переменной - например, с именем дублируемого мувика (например, движение слева-направо, либо справа-налево, сверху-вниз, снизу-вверх, масштабирование, падение непрозрачности),
5) по наезду мышом на флэш, эти мувики должны проиграться не одновременно, а друг за другом, т.е. каждый будет проигрываться по завершении анимации предыдущего
6) по нажатию на флэшку надо перейти на другую страницу: адрес должен храниться во внешней переменной, также передаваемой каждому из экземпляров флэшки.

Вопросы:
1) как узнать из флэшки количество переданных переменных? Можно ли их задавать как элементы массива?
2) как получить доступ к переданным переменным (url для geturl, имя проигрываемого и дублируемого клипа) из скрипта, обрабатывающего кнопку, положенную на основную сцену во второй слой?
3) как проиграть продублированные в цикле (по количеству переданных переменных) клипы друг за другом а не одновременно?

silin 10.10.2006 20:52

1)массив передать нельзя, но можно строку с разделителями (myVar=v1,v2,v3 ,например),
а во флэше перегнать ее в массив var arr=myVar.split(",");
2)брать из рута, куда они, собственно и передаются..
3)в конце каждого предусмотреть вызов следующего

thorr 10.10.2006 23:46

почти получилось. только осталась проблема с проигрыванием клипов друг за другом.
сейчас есть скрипт, который формирует клипы из внешней картинки и типовой анимации

Код:

for(i=0;i<argc;i++)
{
        duplicateMovieClip(this.rolik1.sym,"sym"+i+1,i);
        loadMovie(arr[i], eval("this.rolik1.sym"+i+1));
        clipname="this.rolik1.sym"+i+1;
        set(clipname.k,i);
}

т.е. хочу создать у каждого из вновь сдублированного клипа свою переменную k с номером данного клипа, чтобы в конце анимации вызвать проигрывание клипа со следующим номером в названии
а в последнем кадре дублируемого клипа пишу:
Код:

stop();
clipname="_root.rolik1.sym"+k+1;
clipname.gotoAndPlay(1);

не работает.

silin 10.10.2006 23:58

не работает потому что присвоить переменную (k в твоем случае) можно только после того как клип загрузился..
поиск&faq тебе поможет: тема изъезженная..

thorr 11.10.2006 00:13

но синтаксис в принципе правильный? в плане, как надо обращаться к переменным и вызывать другие клипы...
Код:

clipname="this.rolik1.sym"+i+1;
set(clipname.k,i);

Код:

clipname="_root.rolik1.sym"+k+1;
clipname.gotoAndPlay(1);

или можно как-то по-другому обращаться к клипам (их внутренним переменным и функциям) с динамическим именем? можно ли сделать массив клипов? и обращаться к ним типа clip[i].k , clip[k].gotoAndPlay(1) ?

etc 11.10.2006 02:15

this['clip'+k].gotoAndPlay…


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

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