PDA

Просмотр полной версии : Embed SWF и управление им


AleXXX
31.05.2012, 21:23
Подскажите пожалуйста такой момент.
Есть SWF: просто несколько кадров анимации на временной шкале. Через Embed в FD или FB он подключается к проекту:

package Units
{
import mx.core.MovieClipAsset;
public class Unit
{
[Embed(source="../Movies/CRDIE.swf")]
private var mcClass : Class;
public var clip:MovieClipAsset ;
public function Unit()
{
this.clip = new mcClass();

}
}
}

Где-то из кода пректа добавляю эту анимацию на сцену:

this.unit= new Unit();
//потуги управлять клипом
addChild(this.unit.clip);

В результате у меня этот клип циклически проигрывается и как следствие юнит циклически умирает. Потуги управлять клипом через this.clip.currentFrame/this.clip.totalFrames успехом не увенчались, т.к. эти свойтсва равны 0, Методы gotoAndPlay/gotoAndStop отсутствуют напрочь. Подскажите как быть? Что я не правильно делаю?

expl
31.05.2012, 22:57
Можно заэмбедить не саму swf-ку, а класс символа - тогда никаких проблем с управлением этим клипом и работой его собственного кода возникнуть не должно (или я чего-то не помню и надо гнать в swc, Flash IDE позволяет):

[Embed(source="library.swf", symbol="MovieClipOrSpriteLinkageName")]
private var movieClipOrSpriteClass:Class;
private var clip:MovieClip = new movieCliopOrSpriteClass() as MovieClip;

Т.е. берём все что на главной линейке анимации, загоняем в MovieClip, назначаем имя экспортируемого класса и указываем его в параметре symbol. Важно помнить, что если даже Вы указали MovieClip, но в этом MovieClip только один кадр - он экспортируется как Sprite, ну а если больше - то как и положено - MovieClip.

RJ Presto
01.06.2012, 15:05
только обратите внимание, что если в символе есть какой-то скрипт (например stop() в каких-то кадрах или в конце анимации), то после эмбеда как symbol="..." все скрипты будут потеряны.
и кстати, почему MovieClipAsset? при эмбеде свф конструктор отлично создаёт MovieClip

AleXXX
01.06.2012, 19:45
Про скрипты в SWF я читал, что они исчезают при Эмбединге. А MovieClipAsset предписывает дока по флексу использовать, вот и он. Всем огромное спасибо.