Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.03.2009, 16:55
theBlackCat вне форума Посмотреть профиль Отправить личное сообщение для theBlackCat Найти все сообщения от theBlackCat
  № 1  
Ответить с цитированием
theBlackCat

Регистрация: Mar 2009
Сообщений: 3
По умолчанию Как генерировать Event из подгруженного файла?

Здравствуйте, если тема уже была, не пинайте - не нашел...
Подскажите, возможно ли генерировать событие в подгруженном мувиклипе так, чтобы оно было принято и обработано в ролике верхнего уровня?
С DispatchEvent'ом не получилось, но, возможно, я не так делаю
Пока единственная идея - на таймер в основном ролике вешаю обработчик, который проверяет переменные - флаги в _root и по ним запускает функции, а флаги пишутся в _root подгруженными файлами. По-моему, это ущербный и ресурсоёмкий путь. подскажите, можно ли событиями такое сделать?
Заранее благодарю


Последний раз редактировалось theBlackCat; 01.03.2009 в 16:57. Причина: опечатка
Старый 01.03.2009, 17:55
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 2  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
А примрер кода чтобы понять что не так?

Старый 02.03.2009, 21:52
theBlackCat вне форума Посмотреть профиль Отправить личное сообщение для theBlackCat Найти все сообщения от theBlackCat
  № 3  
Ответить с цитированием
theBlackCat

Регистрация: Mar 2009
Сообщений: 3
Есть 2 файла:
ticker
Код AS1/AS2:
import mx.events.EventDispatcher;
 
 
_root.Eventer = function():Void
{
	dispatchEvent({type:"tick"});
	trace("tick!");
}
_root.EventerID = setInterval(_root, "Eventer", 1000);
и listener
Код AS1/AS2:
import mx.events.EventDispatcher;
 
var MainListen:Object = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();
 
lo = new Object();
lo.tick = function(evt){
    trace("tack");
}
 
mcLoader.addListener(MainListen);
 
MainListen.onLoadInit = function (mc:MovieClip) {  
	if(mc) {
		trace("loaded");
		ms.addEventListener("tick", lo);
	}
}
 
_root.createEmptyMovieClip("MainMenu", _root.getNextHighestDepth());
mcLoader.loadClip("ticker.swf",MainMenu);
по идее, каждый тик должен генерироваться ивент, на который будет такать. не такает

Старый 02.03.2009, 22:11
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 4  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Ну поидее нет мувиклип ведь не EventDispatcher.
ticker
Код AS1/AS2:
import mx.events.EventDispatcher;
 
var dispatcher:EventDispatcher = new EventDispatcher();
 
/*Почему так:/?
_root.Eventer = function():Void
{
	this.dispatcher.dispatchEvent({type:"tick"});
	trace("tick!");
}
 
_root.EventerID = setInterval(_root, "Eventer", 1000);
*/
 
 
function flushEvent():Void
{
	dispatcher.dispatchEvent({type:"tick"});
}
 
var inteval:Number = setInterval(this, "flushEvent", 1000);
 
function addEventListener(key:String, f:Object):Void
{
	dispatcher.addEventListener(key, f);
}
listener
Код AS1/AS2:
var MainListen:Object = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();
 
lo = { };
//Почему не просто функция @_@ - гипновзлгяд :E
lo.tick = function():Void
{
    trace("tack");
}
 
mcLoader.addListener(MainListen);
 
MainListen.onLoadInit = function (mc:MovieClip) {  
	if(mc) {
		trace("loaded");
		ms.addEventListener("tick", lo);
	}
}
 
_root.createEmptyMovieClip("MainMenu", _root.getNextHighestDepth());
mcLoader.loadClip("ticker.swf",MainMenu);

Старый 02.03.2009, 23:12
theBlackCat вне форума Посмотреть профиль Отправить личное сообщение для theBlackCat Найти все сообщения от theBlackCat
  № 5  
Ответить с цитированием
theBlackCat

Регистрация: Mar 2009
Сообщений: 3
Спасибо огромное!!
Всё заработало. Теперь осталось понять принцип
Кто будет пользоваться, как примером - в onLoadInit'е не ms.addEvent, а mc.addEvent (очепятка у меня вышла)

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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