Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Анимация помощью AnimatorFactory (http://www.flasher.ru/forum/showthread.php?t=129300)

Olmer 29.08.2009 01:49

Анимация помощью AnimatorFactory
 
Такая проблемка.
Есть класс Animation

Код AS3:

package com.olmer.utils {
 
        import fl.motion.AnimatorFactory;
        import fl.motion.MotionBase;
        import flash.filters.*;
        import flash.geom.Point;
        import fl.motion.Motion;
        import flash.display.DisplayObject;
 
        public class Animation {
                public static function respell (object:DisplayObject) {
                        //object.alpha = 0;
                        var __motion_disk:MotionBase;
 
                        if(__motion_disk == null) {
                                __motion_disk.overrideTargetTransform();
                                __motion_disk = new Motion();
                                __motion_disk.duration = 20;
                                __motion_disk.overrideTargetTransform();       
                                __motion_disk.addPropertyArray("x", [0]);
                                __motion_disk.addPropertyArray("y", [0]);
                                __motion_disk.addPropertyArray("scaleX", [1.000000]);
                                __motion_disk.addPropertyArray("scaleY", [1.000000]);
                                __motion_disk.addPropertyArray("skewX", [0]);
                                __motion_disk.addPropertyArray("skewY", [0]);
                                __motion_disk.addPropertyArray("rotationConcat", [0]);
                                __motion_disk.addPropertyArray("blendMode", ["normal"]);
                                __motion_disk.addPropertyArray("alphaMultiplier", [0.000000,0.043684,0.087368,0.131053,0.174737,0.218421,0.262105,0.305789,0.349474,0.393158,0.436842,0.480526,0.524210,0.567895,0.611579,0.655263,0.698947,0.742631,0.786316,0.830000]);
 
                                var __animFactory_disk:AnimatorFactory = new AnimatorFactory(__motion_disk);
                                __animFactory_disk.transformationPoint = new Point(0.500000, 0.500000);
                                trace("Respell");
                                __animFactory_disk.addTarget(object, 1);
 
                        }
                }
 
                public static function dispell (object:DisplayObject) {
                        //object.alpha = 100;
                        var __motion_disk:MotionBase;
 
                        if(__motion_disk == null) {
                                __motion_disk = new Motion();
 
                                __motion_disk.duration = 20;
 
                                __motion_disk.addPropertyArray("x", [0]);
                                __motion_disk.addPropertyArray("y", [0]);
                                __motion_disk.addPropertyArray("scaleX", [1.000000]);
                                __motion_disk.addPropertyArray("scaleY", [1.000000]);
                                __motion_disk.addPropertyArray("skewX", [0]);
                                __motion_disk.addPropertyArray("skewY", [0]);
                                __motion_disk.addPropertyArray("rotationConcat", [0]);
                                __motion_disk.addPropertyArray("blendMode", ["normal"]);
                                __motion_disk.addPropertyArray("alphaMultiplier", [1.000000,0.947368,0.894737,0.842105,0.789474,0.736842,0.684211,0.631579,0.578948,0.526316,0.473684,0.421053,0.368421,0.315790,0.263158,0.210526,0.157895,0.105263,0.052632,0.000000]);
                                var __animFactory_disk:AnimatorFactory = new AnimatorFactory(__motion_disk);
                                __animFactory_disk.transformationPoint = new Point(0.500000, 0.500000);
                                trace("Dispell");
                                __animFactory_disk.addTarget(object, 1);
 
                        }
                }
        }
}


Из другого класса пытаюсь на наведение заставить его обьект исчезнуть, а потом появиться.

Код AS3:

package com.olmer.radio {
 
        import com.olmer.utils.Animation;
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
 
        public class MainView extends MovieClip {
 
                public function MainView () {
                        disk.addEventListener(MouseEvent.MOUSE_OVER, dispellMenu);
                        disk.addEventListener(MouseEvent.MOUSE_OUT, respellMenu);
                }
 
                private function respellMenu (event:MouseEvent) {
                        Animation.respell(this);
                }
 
                private function dispellMenu (event:MouseEvent) {
                        this.alpha = 100;
                        Animation.dispell(this);
                }
        }
}

Но почему-то, когда отвожу мышку объект не появляется, а при повторном наведении вообще ничего не происходит.

Возможно есть какие-то моменты в использовании такого рода програмной анимации.

Пробовал делать исчезание через обычный Tween, но когда ставлю property: "alpha" или "alphaMultiplier" ничего не происходит.

LEXiy 22.03.2010 19:59

....жалко, что на тему так никто и не ответил :(
Мне бы тоже пригодилось.
Может, кто-нибудь все-таки знает ответ? Как с помощью разных animFactory анимировать один и тот же объект?


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

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