[英]AS3 help needed if button1 of a movieclip && button2 of another movieclip clicked then gotoAndPlay
[英]gotoAndPlay in embedded movieclip
我正在开发带有嵌入式SWF的Air 2.6项目。
我正在使用以下嵌入代码:
[Embed(source = "../../assets/click_feedback.swf", symbol="sub_circle")]
[Bindable]
public static var click_feedback:Class;
以及以下代码来获取click_feedback类的实例:
private var cfb:MovieClip = new Assets.click_feedback() as MovieClip
问题是:
资产子圈子具有标记为“响应”的框架。 但是,无论是否使用gotoAndPlay调用标签,它都不会停止播放。
而且,在动画的末尾,有一个Event.COMPLETE调用,我的代码没有调用它。
我已经在构建CS5的CS5中测试了sub_circle资产,并且在那种环境下,它只有在调用'respond'时才能动画,并且脚本可以听到它触发的事件。
这是从SWF处理嵌入式资产的正确方法吗?
嵌入来自swf的单独符号通常不是一个好主意:
我建议嵌入hole swf文件并在运行时加载其字节,再添加一些代码来处理异步加载,但使用起来会更加自由和灵活:
load(ByteArray or URL)
类的API, getSkin(name):DisplyObject
)将您的资产组织到库中 适用于您的资产的代码示例:
package
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.utils.ByteArray;
[SWF(width="800", height="200", backgroundColor="0x8B8B8B")]
public class astest extends Sprite
{
[Embed(source="../../assets/click_feedback.swf", mimeType="application/octet-stream")]
private static const common_art:Class;
private var loader:Loader;
private var domain:ApplicationDomain = ApplicationDomain.currentDomain;
public function astest()
{
init();
}
public function init():void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
var loaderContext:LoaderContext = new LoaderContext(false, domain);
loaderContext.allowCodeImport = true;
loader.loadBytes(new common_art() as ByteArray, loaderContext);
}
private function onLoaded(event:Event):void
{
var clip:MovieClip = getSkin("sub_circle") as MovieClip;
addChild(clip);
}
private function getSkin(name:String):DisplayObject
{
if(domain.hasDefinition(name))
{
var clazz:Class = domain.getDefinition(name) as Class;
return new clazz() as DisplayObject;
}
return null;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.