加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

actionscript-3 – AS3,在SWF中加载为自定义类型

发布时间:2020-12-15 07:26:31 所属栏目:百科 来源:网络整理
导读:这里的基本问题.通常在AS3中,您通过Loader加载SWF,而您获得的是某种类型为“Loader”的伪MovieClip. 假设SWF是使用自定义类型的基类发布的,那么在阳光下是否有任何神圣的方式将此加载的SWF强制转换为扩展MovieClip而不是Loader的自定义类型?没有数据丢失?
这里的基本问题.通常在AS3中,您通过Loader加载SWF,而您获得的是某种类型为“Loader”的伪MovieClip.

假设SWF是使用自定义类型的基类发布的,那么在阳光下是否有任何神圣的方式将此加载的SWF强制转换为扩展MovieClip而不是Loader的自定义类型?没有数据丢失?

或者,假设你不能,你甚至可以从扩展Loader本身的自定义类型转换它吗?

解决方法

你可以这样做:

存根swf中的代码:

package {

    import flash.display.MovieClip;

    public class Stub extends MovieClip implements IStub {

        public function Stub() {
            trace("Stub::ctor");
        }

        public  function traceIt(value:String):void {
            trace("Stub::traceIt " + value);
        }
    }
}

我正在使用一个界面,但它并不是严格必要的.

package {

    public interface IStub {

        function traceIt(value:String):void;

    }
}

代码在“主要”瑞士法郎.

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT,handleInit);
loader.load(new URLRequest("Stub.swf"));

function handleInit(e:Event):void {
    var stub:Stub = loader.content as Stub;
//  or,using an interface 
//  var stub:IStub = loader.content as IStub;
    stub.traceIt("testing");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读