PDA

Просмотр полной версии : Как это сделать?..


RadonDmitro
04.06.2003, 21:06
Есть пять флэшей. Они несколько раз продублированы на странице с айдишниками типа - "papa1", "papa2", "papa3"; "mama1", "mama2", "mama3";

Есть также на странице клип control. Каждый клип papa или mama должен передать в control "я загружен". Причем желательно бесшумно - через fscommand. Control делает проверку - кол-во типов флэшей умножает на кол-во дублирований. И если результат умножения равен количеству загруженных флэшей папа-мама, то делается какое=то действие..... Типа КОНЕЦ - УРЯЯЯ! Вот такая вот бредятинка. Ничего умного в голову не лезет, вот и прошу хелпа :) Только не надо меня посылать на Астру :)

Dimonius
04.06.2003, 21:21
Если я правильно понял, все это происходит на html странице


В первом кадре каждого ролика:

loadedBytes = _root.getBytesLoaded();
totalBytes = _root.getBytesTotal();
load=loadedBytes/totalBytes;
if (load==1){
fscommand("clip1","loaded");
gotoAndPlay(3);
}
Во втором кадре

gotoAndPlay(1);

Ну и разумеется в HTML описываешь функцию

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

А если имелась ввиду сцена, то причем здесь fscommand(); тогда все здесь просто.
онКлипЭвент итд

RadonDmitro
04.06.2003, 22:55
На таком примерчике простом можно все продробнее показать? Нужно чтобы если все четыре клипа загрузились, то контрол перешел на третий фрейм.

Dimonius
05.06.2003, 14:26
Сколько типов флешей будет, и сколько дубликатов, а то я чего-то в примере не совсем догоняю. Да, немного придется повозится со скрипингом на странице.

SPV
05.06.2003, 15:11
А ещё есть замечательная штука - ЛокалКоннекшн называется...

http://www.macromedia.com/support/flash/ts/documents/localconnection.htm

RadonDmitro
05.06.2003, 15:13
Привет:) Вот такой набор флэшей на странице (в архиве). Задача в том, чтобы каждый отдельный флэш (images1...5 , address1...5 , details1...5 , CTF1...5 , BZP1...5 , prop_name1...5), когда загрузился до конца - передал в контрол "я загружен". Желательно не просто абстрактно, типа flash_loaded_summary = flash_loaded_summary + 1
а чтобы в контроле был в конце такой набор переменных -

images1 = "loaded".
prop_name1 = "loaded".
address1 = "loaded".
details1 = "loaded".
CTF1 = "loaded".
BZP1 = "loaded".

images2 = "loaded".
prop_name2 = "loaded".
address2 = "loaded".
details2 = "loaded".
CTF2 = "loaded".
BZP2 = "loaded". и так еще три раза.

Это нужно для того, чтобы когда пять флэшей с порядковым номером 1 загрузились, контрол сказал флэшу images1 play.
тот в свою очередь, когда проиграет до конца сказал флэшу address1 play. И так до BZP1. Когда BZP1 доиграл до конца - он говорит контролу, что он закончил. Контрол проверяет, если все пять флэшей с порядковым номером 2 загружены, значит images2 play и все заново.

Это был бы идеальный вариант.

Есть в принципе промежуточный вариант - полегче - это каждый флэш когда он загружен добавляет к переменной в контроле flash_loaded_summary единицу. Контрол постоянно делает проверку - если кол-во наборов флэшей (в данном случае 5)*кол-во флэшей в наборе (в данном случае 6) == flash_loaded_summary , то одномоментно говорим всем флэшам play.

RadonDmitro
05.06.2003, 15:17
2SPV: использование МХ пока исключено... а жаль...

Dimonius
05.06.2003, 15:24
2 SPV
Точно, а я и забыл, что такая штукенция в шестерке появилась, спасибо.

2 RadonDmitro
Звини, меня ща работой срочной обложили, но к концу дня постораюсь, чем-нить тебе помочь, да ты и сам не плошай.

RadonDmitro
05.06.2003, 15:29
Если получится буду Очень признателен :) В любом случае спасибо :)

SPV
05.06.2003, 15:55
Через ЯвуСкрипт полезут подводные камни и самое главное - ФСКоманд не во всех браузерах работает.
Так-же придется заводить явовский буфер, потому что возможна такая ситуация: какой-либо флэш загрузился и просит яву отрапортовать этот факт контролу... но к этому времени сам контрол ещё не загружен. Тогда придется запоминать рапорт в буфере, а по загрузке контрола он должен спрашивать ЯвуСкрипт, что там в буфере накопилось.

Есть более универсальный способ без недостатков и без ЯваСкрипта - серверный скрипт. Каждый флэш по заргузке оповещает об этом сервер (скрипт), а контрол с некоторым интервалом запрашивает у сервера (скрипта) состояние всех флэшей. Чтобы не мучаться с файлами и сессиями, скрипту можно хранить текущее состояние в куках.

RadonDmitro
06.06.2003, 02:30
Нет, серверный скрипт это конечно гуд, но в день эту страницу будут загружать около 14000 раз. В каждой странице будет штук по пять наборов флэшей по шесть в наборе. Вот и посчитайте кол-во запросов, около миллиона, серваку своих забот хватает :)

SPV
06.06.2003, 11:20
Да хоть миллиард :) Скрипту не нужно делать супер сложных математических операций млм рендерить 3Д графику :) Сервер этого даже не заметит.

Dimonius
06.06.2003, 12:13
SPV прав, я с твоим исходником в яве совсем запутался, что-то не пашет и все. Лучше действительно делать такие вычисления на сервере.