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

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

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

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
По умолчанию getter и setter в динамическом классе

Как в рантайме создать поля геттеры и сеттеры ?
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

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

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
addProperty(prop:String, getFunc:Function, setFunc:Function) : Boolean ?
Только придётся от Proxy наследоваться...
__________________
Верить никому нельзя. Мне - можно. :)

Старый 10.11.2006, 21:23
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 3  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Если без Proxy, у динамических классов всё созданное паблик будет...
__________________
Верить никому нельзя. Мне - можно. :)

Старый 10.11.2006, 21:34
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 4  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Странно что addProperty не задокументировано.... Да нашёл , merlin Twi переводил tip с использованием этой функции.
Из каких соображений в AS 3.0 все классы не наследуют Proxy ? Это бы добавило гибкости. Может Proxy ресурсоёмок?
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 10.11.2006, 21:40
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 5  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Хочу создавать сеттеры в рантайме, как это было в АС 1/2. У класса Object было addProperty , а теперь нужно что-то вымудрять через Proxy. Может кто-то нашёл наиболее рациональный выход?
Зачем ? О... это долгая история
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 10.11.2006, 21:43
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 6  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Цитата:
The Proxy class is a replacement for the Object.__resolve and Object.addProperty features of ActionScript 2.0, which are no longer available in ActionScript 3.0. The Object.addProperty() feature allowed you to dynamically create get and set methods in ActionScript 2.0. Although ActionScript 3.0 provides get and set methods at compile time, you cannot dynamically assign one to an object unless you use the Proxy class.
Такой облом.
__________________
Верить никому нельзя. Мне - можно. :)

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

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Цитата:
Сообщение от miramax
Странно что addProperty не задокументировано.... Да нашёл , merlin Twi переводил tip с использованием этой функции.
Из каких соображений в AS 3.0 все классы не наследуют Proxy ? Это бы добавило гибкости. Может Proxy ресурсоёмок?
Наверняка ресурсоёмок. Но могли бы сделать какой-нибудь debug mode, где вместо объекта при компиляции используется Proxy...
__________________
Верить никому нельзя. Мне - можно. :)

Старый 11.11.2006, 13:02
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 8  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Цитата:
Сообщение от miramax
Хочу создавать сеттеры в рантайме, как это было в АС 1/2. У класса Object было addProperty , а теперь нужно что-то вымудрять через Proxy. Может кто-то нашёл наиболее рациональный выход?
Зачем ? О... это долгая история
Расскажи плз эту длинную историю, может найдем более простой выход
__________________
33 коровы

Старый 11.11.2006, 13:25
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 9  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Цитата:
Сообщение от __i
Расскажи плз эту длинную историю, может найдем более простой выход
Значит так, когда мы кодим что-то на флеше, часто возникает необходимость в том что бы какие-то свойства менялись плавно, или менялись земедленно, или менялись и колебались. Например шарик колеблещийся около курсора, при движении курсора этот шарик как на резинке следует за мышью. Бывает необходимость плавно, или с замедлением изменять альфа канал. Т.е. нам нужно плавно менять какие-то свойства. Например что бы плавно менять координату x, на нужно писать большой кусок кода с функцией которая вызывается по событие enterFrame и делает много всяких проверок. У меня сейчас в проекте таких элементов штук 50, где альфу надо плавно сменить, где координаты, в барчартах - надо плавно менять высоту. То есть , это какие-то объекты, возвращающие тип Number и эти намберы надо плавно менять. Возникла идея написать класс ингибитор, который позволяет ставить функции замедления на какие-либо свойства. Юзинг этого класса я представляю себе так:
Код:
inh = new Inhibitor();
inh.inhibit(anyObject, 'x', inhibitFunction, param)
anyObject.x = 50;
То есть класс ингибитор имеет статичный метод inhibit который в любом объекте замедляет изменение любого свойства. В моём примере первый аргумент - объект, второй - свойство в этом объекте, третий - функция ингибирования, которая будет вызываться по enterFrame, остальные аргументы - какие-топараметры для функции ингибирования. После этого, свойство х плавно меняет своё значение, от кадра к кадру. Достаточно один раз написать функцию ингибирования, простота написания кода существенно возрастёт.
Но, вот в чём проблема. На мой объект anyObject уже имеется туча ссылок, этот объект много где юзается. То есть изменение свойства х, из любой точки программы долно вызвать плавное изменение х.
Самым разумным ,на мой взягляд, выходом было сделать следующее:
после вызова метода, класс inhibitor копирует геттер и сеттер свойства х куда-нибудь, например в геттеры и сеттеры свойства temp (что бы можно было потом его менять), потом ингибитор вставляет на место свойства х геттеры и сеттеры, которые вызывают функцию ингибирования, которая в свою очередь плавно меняет свойство temp. Бредятина конечно, но на АС 1/2 это реализовать несложно, а вот с тройкой проблемы.
Создание нового прокси объекта-обёртки, который будет перехватывать свойства, не очень удачный выход. Т.к. старые ссылки на объект будут по-прежнему менять оригинальное свойство скачкообразно.
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©


Последний раз редактировалось miramax; 11.11.2006 в 13:30.
Старый 11.11.2006, 13:48
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
т.е. ты хочешь иметь возможность подписывать/отписывать на inhibit любое свойство любого объекта ?
не дешевле будет продублировать нужные свойства нужных классов(так ли их много?) уже с этим функционалом и там где надо пользовать их, где не надо - 'родные' ?

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

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

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


 


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


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