PDA

Просмотр полной версии : Изменение Animator.target


Andrei666
04.08.2008, 17:52
Приветствую!
Задача такова: есть большой набор элементов, к которым поочерёдно применяются небольшое количество анимаций. Я попробовал перебросить Animator.target на другой мувик. В принципе оно скорее работет чем нет, но анимация ведёт себя весьма странно, как будто продолжается, не возвращаясь на первый кадр. rewind не помогает. Вот код:
package Scripts{
import flash.display.*;
import flash.events.*;
import fl.motion.*;
import flash.text.*;

public class Temp extends Sprite{
private var animator:Animator;
private var mc1:mc;
private var mc2:mc;

private var Switcher:Boolean = true;

public function Temp(){
var motion2_xml:XML =<Motion duration="30" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*">
<source>
<Source frameRate="12" x="12.25" y="6.5" scaleX="1" scaleY="1" rotation="0" elementType="movie clip">
<dimensions>
<geom:Rectangle left="0" top="0" width="24.5" height="13"/>
</dimensions>
<transformationPoint>
<geom:Point x="0.5" y="0.5"/>
</transformationPoint>
</Source>
</source>


<Keyframe index="0">
<tweens>
<SimpleEase ease="0"/>
</tweens>
</Keyframe>

<Keyframe index="29" x="130"/>
</Motion>;

mc1 = new mc();
mc2 = new mc();
var t1:TextField = new TextField();
var t2:TextField = new TextField();
t1.text = "1";
t2.text = "2";
mc1.addChild(t1);
mc2.addChild(t2);

addChild(mc1);
addChild(mc2);

animator = new Animator(motion2_xml);

Button_mc.addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(e:MouseEvent):void{
if(Switcher) animator.target = mc1
else animator.target = mc2;

Switcher = !Switcher;
animator.play();
}
}
}

Также вышлю пример. Красные квадраты должны не продолжать движение, а начинать его заново каждый раз.

Alex Lexcuk
04.08.2008, 22:27
Тут надо, скорее всего делать двигательную хмл для каждого квадрата свою из первой хмл. Пример:
http://www.dnadillo.dn.ua/fla/button-big-small.html
в примере квадраты увеличиваются и уменьшаются, причем хмл написана одна, а уменьшительная хмл плучается изменением атрибутов.
Вам нужно изменить для хмл координату х для каждого квадрата.

Andrei666
05.08.2008, 16:00
Тот пример не очень показателен, тк для каждого мувика создаётся свой экземпляр аниматора. Я думал не таскать такую груду с каждым квадратом (у меня их планируется много). А задействовать анимацию (которой мало, тк в основном они просто стоят) только по необходимости. Все равно спасибо! Скорее всего придётся сделать так...