mihafin
09.04.2011, 13:01
Всем, привет!
Есть у меня swf файл, в котором есть символ (MovieClip) birdDamage
это 10 кадров с анимацией. в последнем кадре в AS указано stop();
если подгружаю мувик через loader, то AS в мувике отрабатывает и анимация останавливается (это необходимое мне поведние).
если подгружаю символ через Embed то анимация идет покругу и AS в кадрах не работает (пример ниже).
Вопрос, можно ли как то подгрузить символ из внешнего SWF используя Embed чтобы код в мувике (в кадрах) отрабатывал?
Возможно ли это вообще?
Спасибо!
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.*;
public class Main extends Sprite
{
[Embed(source = '../lib/bird.swf', symbol = 'birdDamage')]
private var BS:Class;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(new URLRequest("../lib/bird.swf"));
var mc:MovieClip = new BS();
mc.x = 100;
addChild(mc); // ТАК РОЛИК ВОСПРОИЗВОДИТСЯ ПОКРУГУ БЕЗ УЧЕТА СКРИПТА В КАДРАХ :(
}
private function completeHandler(event:Event):void {
var info:LoaderInfo = event.target as LoaderInfo;
try
{
var a:Class = info.applicationDomain.getDefinition("birdDamage") as Class;
addChild( new a() );// ТАК РАБОТАЕТ ПРАВИЛЬНО :)
}
catch (e:ReferenceError)
{
trace('ERROR: '+e);
}
}
private function ioErrorHandler(event:IOErrorEvent):void
{
trace("ERROR: " + event);
}
}
}
Есть у меня swf файл, в котором есть символ (MovieClip) birdDamage
это 10 кадров с анимацией. в последнем кадре в AS указано stop();
если подгружаю мувик через loader, то AS в мувике отрабатывает и анимация останавливается (это необходимое мне поведние).
если подгружаю символ через Embed то анимация идет покругу и AS в кадрах не работает (пример ниже).
Вопрос, можно ли как то подгрузить символ из внешнего SWF используя Embed чтобы код в мувике (в кадрах) отрабатывал?
Возможно ли это вообще?
Спасибо!
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.*;
public class Main extends Sprite
{
[Embed(source = '../lib/bird.swf', symbol = 'birdDamage')]
private var BS:Class;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(new URLRequest("../lib/bird.swf"));
var mc:MovieClip = new BS();
mc.x = 100;
addChild(mc); // ТАК РОЛИК ВОСПРОИЗВОДИТСЯ ПОКРУГУ БЕЗ УЧЕТА СКРИПТА В КАДРАХ :(
}
private function completeHandler(event:Event):void {
var info:LoaderInfo = event.target as LoaderInfo;
try
{
var a:Class = info.applicationDomain.getDefinition("birdDamage") as Class;
addChild( new a() );// ТАК РАБОТАЕТ ПРАВИЛЬНО :)
}
catch (e:ReferenceError)
{
trace('ERROR: '+e);
}
}
private function ioErrorHandler(event:IOErrorEvent):void
{
trace("ERROR: " + event);
}
}
}