|
|
|||||
Регистрация: Mar 2015
Сообщений: 8
|
анимация в классе
пишу класс:
package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; import flash.display.DisplayObject; import fl.motion.AnimatorFactory; import fl.motion.MotionBase; import fl.motion.Motion; import flash.filters.*; import flash.geom.Point; public class IList extends MovieClip { private var go:Boolean = false; var ent1 = new MovieClip; public function IList() { InitAnimation(); addEventListener(MouseEvent.MOUSE_OVER,_onMouseOver); addEventListener(MouseEvent.MOUSE_OUT,_onMouseOut); addEventListener(Event.ENTER_FRAME,_onEnterFrame); } function _onMouseOver(event:MouseEvent):void { if(!go) { parent.setChildIndex(this,parent.numChildren-1); go = true; } } private function _onMouseOut(event:MouseEvent):void { go = false; } private function _onEnterFrame(e:Event):void { if(go) nextFrame(); else prevFrame(); } function InitAnimation():void { ent1.graphics.lineStyle(1,0x000000); ent1.graphics.beginFill(0xCCFF00 ); ent1.graphics.drawRect (0,0,150,50); addChild(ent1); ent1.name = "ent1"; var __motion_Flag1:MotionBase; if(__motion_Flag1 == null) { __motion_Flag1 = new Motion(); __motion_Flag1.duration = 9; __motion_Flag1.addPropertyArray("y", [0,2,4,6,8,10,12,14,16]); var __animFactory_Flag1:AnimatorFactory = new AnimatorFactory(__motion_Flag1); __animFactory_Flag1.transformationPoint = new Point(0.500000, 0.500000); __animFactory_Flag1.addTarget(ent1, 0); } } } } |
|
|||||
.
|
Скорее всего анимация после создания тут же удаляется после выходя из области видимости метода InitAnimation, потому что ссылка на нее объявлена локальной.
|
|
|||||
Регистрация: Mar 2015
Сообщений: 8
|
спасибо, с этим разобрался:
package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; import flash.display.DisplayObject; import fl.motion.AnimatorFactory; import fl.motion.MotionBase; import fl.motion.Motion; import flash.filters.*; import flash.geom.Point; import flash.display.Sprite; public class IList extends MovieClip { private var go:Boolean = false; private var motionBase:MotionBase; private var animFactory:AnimatorFactory; private var size:uint = 100; private var bgColor:uint = 0xFFCC00; public function IList() { addEventListener(MouseEvent.MOUSE_OVER,_onMouseOver); addEventListener(MouseEvent.MOUSE_OUT,_onMouseOut); addEventListener(Event.ENTER_FRAME,_onEnterFrame); var boxObj:Sprite = new Sprite(); boxObj.graphics.beginFill(bgColor); boxObj.graphics.drawRect(0, 0, size, size); boxObj.graphics.endFill(); boxObj.name "frgfrt"; addChild(boxObj); if(motionBase == null) { motionBase = new Motion(); motionBase.duration = 17; motionBase.addPropertyArray("y",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]); animFactory = new AnimatorFactory(motionBase); animFactory.transformationPoint = new Point(0.5,0.5); animFactory.addTarget(boxObj, 0); } } function _onMouseOver(event:MouseEvent):void { if(!go) { parent.setChildIndex(this,parent.numChildren-1); go = true; } } private function _onMouseOut(event:MouseEvent):void { go = false; } private function _onEnterFrame(e:Event):void { if(go) nextFrame(); else prevFrame(); trace(currentFrame); } } } почему анимация воспроизводится беспорядочно с непонятной скоростью, и как мне работать с ней? п.с. в привычном режиме, при создании флеш анимации я работать умею, а через класс впервые Добавлено через 23 часа 27 минут немного переделал класс, но по прежнему не знаю как управлять анимацией, созданной таким способом: package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; import flash.display.DisplayObject; import fl.motion.AnimatorFactory; import fl.motion.MotionBase; import fl.motion.Motion; import flash.filters.*; import flash.geom.Point; import flash.display.Sprite; import fl.motion.MotionEvent; public class IList extends MovieClip { private var go:Boolean = false; private var motionBase:MotionBase; private var animFactory:AnimatorFactory; private var size:uint = 100; private var bgColor:uint = 0xFFCC00; public function IList() { var boxObj = new MovieClip(); boxObj.graphics.beginFill(bgColor); boxObj.graphics.drawRect(0, 0, size, size); boxObj.graphics.endFill(); addChild(boxObj); if(motionBase == null) { motionBase = new Motion(); motionBase.duration = 32; motionBase.addPropertyArray("y",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]); motionBase.overrideTargetTransform(); animFactory = new AnimatorFactory(motionBase); animFactory.transformationPoint = new Point(0.5,0.5); animFactory.addTarget(boxObj, 0); } } } } метод тоже не работает честное слово, я в тупике и мне нужна помощь хочу добиться пока что остановки и запуска анимации в нужный мне момент, жду помощи, и надеюсь что она будет вопрос решен, добавлением таких строк: спасибо всем, можно тему закрывать Последний раз редактировалось reqyzik; 30.03.2015 в 12:55. |
Часовой пояс GMT +4, время: 19:39. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|