AS3中,我们可以使用

[Embed(source="asset.swf", symbol="symbol")]
private var symbolClass:Class; var symbol:MovieClip = new symbolClass();

从艺术中嵌入一个符号的SWF在什么可能是一个代码构建的SWF。这是伟大的,但如果你要嵌入整个SWF

[Embed(source="asset.swf")]
private var assetClass:Class; var asset:MovieClip = new assetClass();

看起来像它应该做的伎俩,但你不能在资产中获得的任何信息。这是一个真正的痛苦,因为这是非常令人费解的原因。我想起了解决这个问题,在过去的工作,并愉快地设法挖掘一个长期被遗忘的宝藏在我的代码库,我想我会分享(已经迅速重构它以使用AS3-信号,自然)。

package com.alecmce.util
{
import org.osflash.signals.Signal; import mx.core.MovieClipAsset; import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.MovieClip;
import flash.events.Event; public class UnpackEmbed
{
private var _ready:Signal; private var _asset:MovieClipAsset;
private var _content:MovieClip; public function UnpackEmbed(assetClass:Class)
{
_asset = new assetClass();
_ready = new Signal(UnpackEmbed); var loader:Loader = Loader(_asset.getChildAt(0));
var info:LoaderInfo = loader.contentLoaderInfo;
info.addEventListener(Event.COMPLETE, onLoadComplete);
} private function onLoadComplete(event:Event):void
{
var info:LoaderInfo = LoaderInfo(event.target);
info.removeEventListener(Event.COMPLETE, onLoadComplete); _content = MovieClip(info.loader.content);
_ready.dispatch(this);
} public function get content():MovieClip
{
return _content;
} public function get ready():Signal
{
return _ready;
} public function get asset():MovieClipAsset
{
return _asset;
}
}
}

当您嵌入的SWF以这种方式,然后实例化它,闪存莫名其妙密谋建立一个MovieClipAsset装载机内,这将是'加载'已嵌入的内容。内容不是立即可用(也可能是有时候,我也遇到过的情况下它不是),所以你必须等待Event.COMPLETE被解雇之前,您可以访问它。此类公开,通知您当内容准备就绪的信号。它可能可以更严格,例如,包括在isComplete标志,但它提供我的目的,以下面的方式使用时:

[Embed(source="asset.swf")]
private var assetClass:Class; asset = new UnpackEmbed(assetClass);
asset.ready.addOnce(onAssetReady); private function onAssetReady(asset:UnpackEmbed):void
{
// now we can access the asset.content!
}

[Embed(source="asset.swf")] 使用其中的所有资源的更多相关文章

  1. [Flash&Flex] AS3.0 如何利用[Embed(source="...")]嵌入资源

    在flex和flashIDE中我们可以[Embed(source="...")]嵌入图片和swf等资源,但两者之间的嵌入方式又有所区别. flex示例: [Embed(source ...

  2. HTML5 source标签:媒介元素定义媒介资源

    HTML5 source标签是一种媒介元素(比如 <video> 和 <audio>)来定义媒介资源.<source> 标签允许您规定可替换的视频/音频文件供浏览器 ...

  3. 使用air进行移动app开发常见功能和问题(一)

    1.  获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...

  4. 使用AIR进行移动APP开发常见功能和问题(上)

    1.  获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...

  5. (转)AS3-元数据Embed嵌入说明

    转自:http://www.shareme.cn/blog/article.asp?id=498 /*     * 没有设置,Flash会在源属性中根据导入资源文件的扩展名载入合适的类型     *  ...

  6. as3.0 [Embed]标签嵌入外部资源

    1.[Embed]嵌入资源 ActionScript代码的顺序非常重要.你必须在声明变量前添加[Embed]元数据标签,而且这个变量的类型会是Class; package { import flash ...

  7. as3中的embed

    actionscript3允许把外部swf直接用Embed标记嵌入到主类中(当然用UrlLoader动态加载也行) 原 作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com 关 ...

  8. AS3条件编译

    package { import flash.display.Sprite; public class Main extends Sprite { public function Main() { s ...

  9. 结合JSFL/actionscript 实现轮廓动画

    动画前半段通过JSFL获取轮廓数据,并在EnterFrame中逐个边缘画出的:后半段机枪动画是美术做好的flash动画. 这里只放出actionscript代码,而JSFL代码涉及到一个工程,暂时保密 ...

随机推荐

  1. [swustoj 679] Secret Code

    Secret Code 问题描述 The Sarcophagus itself is locked by a secret numerical code. When somebody wants to ...

  2. 实现类似QQ的即时通信程序(十一)

    此为网络编程的一个系列,后续会把内容补上....

  3. 打印web页面指定区域的三种方法

    本文和大家分享一下web页面实现指定区域打印功能的三种方法,一起来看下吧. 第一种方法:使用CSS 定义一 个.noprint的class,将不打印的内容放入这个class内. 代码如下: <s ...

  4. DOM事件逐层上机传递

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. POJ 2378-Tree Cutting(树形dp)

    题意: n个节点的树,删除一个点,得到的最大联通分支大小不大于总节点数的一半,求这样点的集合 分析:和上题一样 #include <map> #include <set> #i ...

  6. codeforces 401D (数位DP)

    思路:很明显的数位dp,设dp[i][j] 表示选取数字的状态为i,模m等于j的数的个数,那么最后的答案就是dp[(1<<n)-1][0].状态转移方程就是,dp[i|(1<< ...

  7. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (一) 京东 商品搜索

    之前有发布一篇文章“e2e 自动化集成测试 环境搭建 Node.js Selenium WebDriverIO Mocha Node-Inspector”, 主要是讲了,如何搭建环境, 其中开发环境使 ...

  8. unity3d自己写角色移动脚本

    废话没有,直接上代码: using UnityEngine; using System.Collections; public class SuperWalk : MonoBehaviour { pu ...

  9. [2015更新]用Word2007写CSDN博客

    搞了半天终于可以用word2007发布CSDN博客了,特分享出来,以方便其他用户. 所示的界面.     图1 office按钮 所示的管理账号,然后点击"新建"也可以进入图3所示 ...

  10. 标准的TCP/IP工业以太网-EtherNet/IP

    标准的TCP/IP工业以太网-EtherNet/IP                            徐智穹以太网具有传输速度高.兼容性好.应用广泛等方面的优势,支持几乎所有流行的网络协议,其中 ...