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

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

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

Регистрация: Sep 2006
Сообщений: 89
По умолчанию Обращение к функциям-прототипам MC изнутри внешнего класса?

Всем привет.

В первом фрейме в as пишу следующее (видимо по-дурости ):
Код:
MovieClip.prototype.tweenPaint = function (...) {....}
и
Код:
easingClass = function ()
{  ...
  this.outExpo = function (...) {...}
  ...
}
ease = new easingClass();

Теперь вопрос, как эти дифиниции использовать в классе, прописываемом "снаружи" в .as фаиле, а именно:

Код:
class MyTxtButton extends MovieClip {
	...	
	function onRollOver() {
		this.tweenPaint(this._inColor, 10, ease.outExpo);
	}
        ...
}
объект ease могу MyTxtButton передать в конструктор, а вот с прототипом что делать? Флеш ругается при проверки .as на ошибки, говорит не знает таких функций (tween), я ему охотно верю
Чувствую, ответ в одну строчку, но так-как никогда не занимался этим профессионально -не знаю...

Буду рад общим советам как лучше оформлять подобные дифиниции-прототипы, думается надо выносить в .as и потом инклудить

Спасибо за совет.

Старый 17.05.2008, 10:19
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А зачем вы вообще пишете прототипы, если есть классы?

Старый 17.05.2008, 11:17
Denis Davidov вне форума Посмотреть профиль Отправить личное сообщение для Denis Davidov Найти все сообщения от Denis Davidov
  № 3  
Ответить с цитированием
Denis Davidov

Регистрация: Sep 2006
Сообщений: 89
что-бы применять функции ко всем объектам MC...

если я сделаю скажем так:
Код:
class MyMovieClip extends MovieClip{
        ...
        function tweenColor(...) {...}
        ...
}
то как мне потом использовать этот класс для уже готовых объектов в библиотеке? Т.е. например заготовлен у меня MC preload_mc, кторый содержит другой MC: balken_mc. Как мне теперь определить что balken_mc это MyMovieClip у кот. есть функция tween, т.е. у экземпляра Preload_mc могу вызвать:
Код:
preload_mc.balken_mc.tween("_alpha", 100, 20, ease.inExpo);
При этом есть другие объекты в библиотеке, к кот. тоже хочется применять эти функции...

Конечно можно прицепить fuse, везде создавать их объекты для tween и кидать туда MC, кот. нужно обработать, но я думаю что так будет тормознее...

Как следует организовать такой код с точки зрения ООП?

Спасибо....

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Объявить класс MyTxtButton как динамический.
Вот только проблема с автокомплитом будет, если пишите в нормальных редакторах.
И потом, не всем-всем клипам нужны эти методы, поэтому лучше явно изменять класс клипа перед использованием через __proto__

Есть еще один вариант, класс tweenPaint сделать пустышкой, и вместо приписывания свойств кучи разным клипам, работать только с этим классом, придварительно приаттчив туда нужный клип.

Ну или композиция еще возможна.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 17.05.2008 в 11:26.
Старый 17.05.2008, 11:54
Denis Davidov вне форума Посмотреть профиль Отправить личное сообщение для Denis Davidov Найти все сообщения от Denis Davidov
  № 5  
Ответить с цитированием
Denis Davidov

Регистрация: Sep 2006
Сообщений: 89
Ага, понятно, точно...
думаю вариант с пустышкой для меня самый простой, ибо с динамич. классами я не работал...

А можно ведь и не создавать пустышку? просто описать tween в tween.as и в MyTxtButton создать объект и выполнить то что нужно. только видимо в описание MyTxtButton надо вставить
Код:
#include "tween.as"
?
тоже самое с ease.
(по похожей схеме работает Fuse)

Кстати. а будет ли это быстрее? стоил вообще парится если я все равно использую Fuse в других местах?
Или быстрее будет если буду передавать готовый объект в конструктор? Но тогда думаю могут быть глюки если одновременно будет несколько tween/ease....


Последний раз редактировалось Denis Davidov; 17.05.2008 в 12:00.
Создать новую тему Ответ Часовой пояс GMT +4, время: 11:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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