PDA

Просмотр полной версии : загрузка переменных, дублирование клипов и задержки проигрывания


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…