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

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

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

Регистрация: Nov 2001
Адрес: Москва
Сообщений: 155
По умолчанию чем заменить onLoad на мувиклипе?

Ну вот у меня куча мувиков на сцене.
В старину просто на каждом мувике писал onLoad, onRelease, onMouseOver и т.д.
Теперь, разумеется, хочется код из мувиков убрать.
С мышиными событиями все понятно,
Код:
my_mc.onRollOver = function() {
.....
}
и т.д.
А как быть с заменой onLoad извне?
Да, я понимаю, что существуют onLoadInit, onLoadComplete и т.д.,
но как я могу их использовать, если я программно не гружу и не создаю эти мувики, они просто уже есть у меня на сцене с соответствующими Instance Name-ами?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
onLoad нужен только в классах, если вы пишите код теперь в кадрах, то все содержимое onLoad просто выносится за пределы события.
Вместо
Код:
on (press) {
	trace (1 + this.a);
}
onClipEvent (load) {
	this.a = 1
	trace (this.a);
}
on (release) {
	trace (2 + this.a);
}
внутри клипа надо написать
Код:
this.onPress = function () {
	trace (1 + this.a);
};
this.onRelease = function () {
	trace (2 +  this.a);
};
this.a = 1
trace (this.a);
или, если доступ к клипу mc
Код:
mc.onPress = function () {
	trace (1 + this.a);
};
mc.onRelease = function () {
	trace (2 + this.a);
};
mc.a = 1;
trace (mc.a);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 29.02.2008, 18:35
ccwds вне форума Посмотреть профиль Отправить личное сообщение для ccwds Посетить домашнюю страницу ccwds Найти все сообщения от ccwds
  № 3  
Ответить с цитированием
ccwds

Регистрация: Nov 2001
Адрес: Москва
Сообщений: 155
Спасибо!
Я просто не могу сообразить, как лучше все эти действия присвоить клипам от my_mc1 до my_mc100.
Запихать все в функцию и ее вызвать 100 раз циклом, передавая ей параметром текущее имя клипа? Или здесь изящнее великими и непонятными классами?

Старый 29.02.2008, 18:43
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Если клипы однотипные, то конечно лучше классом.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 29.02.2008, 18:53
ccwds вне форума Посмотреть профиль Отправить личное сообщение для ccwds Посетить домашнюю страницу ccwds Найти все сообщения от ccwds
  № 5  
Ответить с цитированием
ccwds

Регистрация: Nov 2001
Адрес: Москва
Сообщений: 155
Да, на них на всех абсолютно одинаковые действия, они читают корневые переменные и в зависимости от собственного номера в собственном имени распоряжаются ими.

Старый 01.03.2008, 20:44
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от iNils
Если клипы однотипные, то конечно лучше классом.
Почему? чем хуже назначение действий в цикле?
Ничем.
__________________
Отряд Котовскага

Старый 01.03.2008, 21:01
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
Сообщение от Котяра
Почему? чем хуже назначение действий в цикле?
Ничем.
Тем, что когда пишем класс, существует одна копия метода или события. А когда назначаем в цикле, то у каждого клипа своя копия. В итоге больший расход памяти.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.03.2008, 01:17
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 8  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Если экономить память, то вполне можно обойтись без классов:
вместо

Код:
mc.onRelease = function () {
	trace (2 + this.a);
};
написать:
Код:
//блок задания метода в цикле
mc.onRelease = f_1
//внешняя функция вне тела цикла
function f_1 () {
	trace (2 + this.a);
};
Что касается классов, то одна копия существует лишь при занесении метода в прототип класса, а если метод в конструкторе класса, то вовсе нет.

Старый 02.03.2008, 01:34
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Метод в конструкторе класса?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.03.2008, 12:04
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 10  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
а вдруг потребуется метод с собственным свойством?

да собственно занесение метода в конструктор класса - это как раз аналог примера 1 поста 8, а занесение метода в прототип класса - аналог примера 2 поста 8.

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

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

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


 


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


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