PDA

Просмотр полной версии : есть ли событие которое наступает при закрытии swf - ролика?


kampil
26.08.2008, 19:35
Здравствуйте. Возник такой вопрос: а можно ли отловить событие которое наступает при закрытии ролика? т.к. мне нужно при закрытии ролика послать данные php - скрипту.

Zik.
26.08.2008, 19:50
отследить как мне известно нельзя, но если у вас закрытие наступает при нажатии кнопки, то и отсылайте в это время скрипт php

etc
26.08.2008, 19:51
Нет такого события.

Мечтатель
26.08.2008, 19:57
Если Вы грузите один swf-файл в другой, используя функцию loadMovie, то - Да.
Например чтобы обратиться к swf файлу, используйте путь к "мувику" в который его грузили. Затем удаляя "мувик" - можете отловить событие, используя обработчик "onUnload"... Но это событие происходит при удалении мувика, а не при закрытии ролика.

kampil
26.08.2008, 20:09
Огромное спасибо, теперь я точно уяснил что это всё же сделать нельзя и очень странно что этого не предусмотрели во Flash ведь это очень важное событие...а насчёт onUnload он работает только при проигрывании при удалении с временной диаграммы, блин могли бы они и к _root привязать это событие.
Тогда последний вопрос,: я делаю небольшой чат для форума(мини чат) так вот делаю его с помощью LoadVars и я просто хотел отобразить список юзеров которые в онлайн если юзер уходит нажимая при этом на созданную мною конпку выход, я передаю его ник php - скрипты а скриптом уже удаляю его ник из текстового файла, а если юзер просто закрыл браузер, то уже никак это не отловить да? т.е. лучше наверное сделать через XMLSocket и не париться да?

2morrowMan
26.08.2008, 20:38
Как клиент чата получает новые сообщения юзеров?

kampil
26.08.2008, 21:22
Как клиент чата получает новые сообщения юзеров?
Ну просто через определённый интервал времени я передаю запрос php скрипту который считывает 15 последних сообщений из файла и передаёт во Flash эти сообщения.

zhalex
26.08.2008, 21:40
так вот сделай просто что если юзер давно не запрашивал последних 15 сообщений то он OFFLINE, а если недавно запришивал, то он ONLINE.

kampil
26.08.2008, 21:58
да спасибо, это неплохой вариант

Wolsh
26.08.2008, 23:08
Чёто я вообще ничего не понял, разъясните мне пожалуйста. Например,
1) как Вы собираетесь закрыть ролик? Может Вы имели ввиду закрыть окно/вкладку в браузере? Или спрятать ролик средствами джаваскрипт?
2) как ЗАКРЫТЫЙ ролик может отправить данные? Разве только джаваскрипт на странице может отловить закрытие и послать сообщение РНР.
3) закрытие конечно важное событие для ролика, он ведь при нем умирает. Зачем ему нужно событие, которое он уже никогда не сможет обработать?

Заварка
23.10.2008, 15:28
3) как зачем?
вот я столкнулся с проблемой, когда мне надо при закрытии ролика запомнить на каком фрейме проигрывается ролик, чтобы записать номер кадра в shared object, а при повторном открытии прочитать shared object и запустить ролик с того места, где закончили просмотр.

какое мне событие использовать чтобы сохранить номер кадра? :(

Wolsh
23.10.2008, 16:01
onEnterFrame разумеется. Как Вы собираетесь обрабатывать событие, если бы оно было, ЗАКРЫТЫМ роликом?

Заварка
23.10.2008, 16:46
не получается что-то у меня :((
вы не могли бы подсказать, наверное я не правильно сохраняю текующий кадр....
onClipEvent (load) {
total = _root.getBytesTotal();
}

onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
percent = int(loaded/total*100);
text = percent+"%";
gotoAndStop(percent);
if (loaded == total) {

var my_so:SharedObject = SharedObject.getLocal("newSharedObject");
h = false;

if (!h) {
if (my_so.data.myVar) {
var _t:Number = my_so.data.myVar;
_root.gotoAndPlay(_t);
h = true;
} else {
_root.gotoAndPlay(1);
}
} else {
my_so.data.myVar = _currentframe;
}
}
}

Wolsh
23.10.2008, 18:28
Четвертый Флэш? Не, не подскажу. Я в те времена еще тущью рисовал.

Заварка
23.10.2008, 18:47
флеш cs3 у мну... вопрос снят, уже подсказали, что к чему.. проблема была в том, что я этот код не там где надо и немножко не так вызывал. (статус загрузки у флешки еще был)