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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Oct 2001
Сообщений: 146
По умолчанию onEnterFrame

Написал игру, в которой постоянно использовал конструкцию типа:

attachMovie(name, newname, d);
newname.onEnterFrame = foo;

Только вот теперь это надо под пятерку перевести, а там вторая строчка не будет работать. Я вот и хочу спросить - как прикрепить обработчик события onEnterFrame к клипу, который лежит в библиотеке? Спасибо.

Старый 03.10.2002, 16:18
JeeP вне форума Посмотреть профиль Отправить личное сообщение для JeeP Посетить домашнюю страницу JeeP Найти все сообщения от JeeP
  № 2  
JeeP
 
Аватар для JeeP

Регистрация: Apr 2002
Адрес: Ukraine, Kiev
Сообщений: 504
Отправить сообщение для JeeP с помощью ICQ
да, это, конечно, не два бита переслать!
процентов 40 будешь переделывать точно!


есть два варианта:

1. на мувик вешаешь конструкцию типа
onClipEvent (enterFrame) {
...do something...
}
этот мув запихнуть еще в один - контейнер, и потом аттачить
этот и другие контейнеры. Для универсальности запихнуть всю
исполняемую логику в функции и положить их, например, в руте,
а уже из мувиков(контейнеров) обращаться к функциям
передавая им нужные параметры.

2. можно извратиться и сделать управляющий трехкадровый мувик,
суть его - в эмуляции onEnterFrame.
Тоесть, лежит у тебя на столе трехкадровый мувик без дела,
когда надо, говоришь ему: "запустика мне в цикле вон ту функцию".
Тут надо запускать функцию через функцию(передавать в
качестве параметра имя другой функции). Естественно,
принимающая функция находится в трехкадровом мувике.
Ну еще несколько флагов надо будет добавить!

Вобщем принцип, думаю, понятен!

Старый 03.10.2002, 16:38
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 3  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
хм... придется соорудить что-то вроде FLEM'a...
только полностью ФЛЕМ канеш, городить незачем...

— делаем клип, на котором есть онКлипЕвент(ентерФрейм) (назовем, например, 'controller')

пишем на этом клипе:
for (i in listeners) {
listeners[i].onEnterFrame();
}

— определяем две вспомогательные функции
controller.addListener = function (href) {
this.listeners.push(href);
}

controller.removeListener = function (href) {
for (i in this.listeners) {
if (this.listeners[i]==href) {
this.listeners.splice(i, 1);
}
}
}


теперь после каждой строчки
newname.onEnterFrame = foo;
дописываешь
controller.addlistener(newname);

если у тебя есть где-то удаление онЕнтерФрейма,
то дописываешь соответственно
controller.removelistener(something);


...все просто :)
и не так чтобы много переделывать на самом деле
только если клипов с онЕнтерФреймом будет очень много -
то придется еще контроллеров поставить...
чтобы цикл длинный все не вешал

если сделать контроллер аттачем - то можно легко добавить еще,
когда уже нужно разбить цикл на части


Последний раз редактировалось Nox Noctis; 03.10.2002 в 16:40.
Создать новую тему   Часовой пояс GMT +4, время: 15:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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