0
我使用OSMF的SWFElement来加载SWF文件到主应用程序,但主应用程序根本无法检测到来自子SWF的事件,试图四处搜索但未找到任何解决方案从OSFF中的SWFElement检测事件
代码使用Flash CS3 Flash时间轴
this.dispatchEvent(new Event('animationEnd'));
我使用OSMF的SWFElement来加载SWF文件到主应用程序,但主应用程序根本无法检测到来自子SWF的事件,试图四处搜索但未找到任何解决方案从OSFF中的SWFElement检测事件
代码使用Flash CS3 Flash时间轴
this.dispatchEvent(new Event('animationEnd'));
添加代码在儿童Flash的SWF的主应用程序
mediaPlayerSprite = new MediaPlayerSprite();
var swfElement:SWFElement = new SWFElement();
swfElement.resource = new URLResource("file:///C:/Users/user/document/OXO/SWF/sampleswfanimation.swf");
// this one not work
swfElement.addEventListener('animationEnd',onSWFEnd);
//this one not work
var loadTrait:LoadTrait = mediaElement.getTrait(MediaTraitType.LOAD) as LoadTrait;
loadTrait.addEventListener('animationEnd',onSWFEnd);
//this one not work too
var displayTrait:DisplayObjectTrait = mediaElement.getTrait(MediaTraitType.DISPLAY_OBJECT) as DisplayObjectTrait;
displayTrait.addEventListener('animationEnd',onSWFEnd);
displayTrait.displayObject.addEventListener('animationEnd',onSWFEnd);
addChild(mediaPlayerSprite);
mediaPlayerSprite.media = swfElement;
代码,我想出了以下solution.I'm不是S如果有更好的方法,但它工作正常。
mediaPlayerSprite = new
MediaPlayerSprite();
var swfElement:SWFElement = new SWFElement();
swfElement.resource = new URLResource("file:///C:/Users/user/document/OXO/SWF/sampleswfanimation.swf");
swfElement.addEventListener(MediaElementEvent.TRAIT_ADD,onTraitAdd);
function onTraitAdd(evt:MediaElement):void
{
if(evt.traitType == "displayObject")
{
var swf:SWFElement = evt.currentTarget as SWFElement;
var displayTrait:DisplayObjectTrait = swf.getTrait(MediaTraitType.DISPLAY_OBJECT) as DisplayObjectTrait;
var loader:Loader = Loader(displayTrait.displayObject);
loader.content.addEventListener('animationEnd',onSWFEnd);
}
}