Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   getter и setter в динамическом классе (http://www.flasher.ru/forum/showthread.php?t=87757)

etc 11.11.2006 14:06

Не пойму, что за изврат, почему нельзя твинить само свойство?

miramax 11.11.2006 14:43

Цитата:

Сообщение от __etc
Не пойму, что за изврат, почему нельзя твинить само свойство?

Причём тут твин? Я говорю об АС 3, о произвольных свойствах типа Number

etc 11.11.2006 14:57

А «плавное изменение свойства» — это не твин?
Код, который ты продемонстрировал один к одному похож на Tween из AS2.

miramax 11.11.2006 15:01

Цитата:

Сообщение от __etc
А «плавное изменение свойства» — это не твин?
Код, который ты продемонстрировал один к одному похож на Tween из AS2.

Твин напорядок тупее чем мне надо т.к. он не изменяет сеттер объекта, поэтому в АС 2 я бы заюзал addProperty, и твина нет в АС 3.

etc 11.11.2006 15:05

Всё равно не понимаю, нафига нужны всякие addProperty, если свойство — простое?

Твин, в конце концов, можно написать самому.
А я даже подумываю насчёт порта на AS3, чем сейчас и займусь (может и изобретаю велосипед, но тем не менее).

miramax 11.11.2006 15:07

Цитата:

Сообщение от __etc
А я даже подумываю насчёт порта на AS3, чем сейчас и займусь (может и изобретаю велосипед, но тем не менее).

Что значит в данном контексте "порт" ?

FlexBuilder 12.11.2006 14:58

Не. По любому надо пользовать Proxy. Иначе никак.
С произвольным объектом такое учинить можно только через какое-нибудь извращение типа
Код:


      public class MyTween extends Sprite
        {
                private var _target:Object;
                private var _speed:Number;
                private var _value:Number;
                private var _destination:Number;
                private var _propName:String;
               
                public function MyTween(obj:Object, propName:String, speed:Number) {
                        _speed = speed;
                        _target = obj;
                        _propName = propName;
                        _value = obj[propName];
                        addEventListener(Event.ENTER_FRAME, updateTween);
                }


                private function updateTween(event:Event):void {
                        if (_target[_propName] != _value) {
                                _destination = _target[_propName];       
                                _target[_propName] = _value;
                        }
                        var delta:Number = _destination - _value;
                        if (Math.abs(delta) < _speed) {
                                _value = _destination;
                        } else {
                                _value += _speed * Math.abs(delta) / delta
                        }
                        _target[_propName] = _value;
                }
               
               
        }

Хотя... может кто уже нарыл аспектно-оринтированный фрейморк под AS3.0 :)

etc 12.11.2006 19:10

miramax, я имел ввиду переписать Tween на AS3, но что-то стало лень)

miramax 12.11.2006 21:31

Цитата:

Сообщение от __etc
miramax, я имел ввиду переписать Tween на AS3, но что-то стало лень)

Я написал что-то типа конвеера john'а на AS 3.0. Теперь изобретаю "художественные" изинги для него :) . Хочу внести ещё работу с событиями.

__i 14.11.2006 14:12

нафига все эти извращения?

Помоемому проще сделать
Код:

inh = new Inhibitor();
var from: Number =  anyObject.x
var to: Number =  50;
inh.inhibit(anyObject, 'x', from, to, inhibitFunction, param);
inh.start();

По типу как в твине было сделано. Во-первых не будешь мучаться и изобретать велосипед, во-вторых синтаксис знакомый всем кто юзал Tween


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

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