[Embed(source="asset.swf")] 使用其中的所有资源
在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")] 使用其中的所有资源的更多相关文章
- [Flash&Flex] AS3.0 如何利用[Embed(source="...")]嵌入资源
在flex和flashIDE中我们可以[Embed(source="...")]嵌入图片和swf等资源,但两者之间的嵌入方式又有所区别. flex示例: [Embed(source ...
- HTML5 source标签:媒介元素定义媒介资源
HTML5 source标签是一种媒介元素(比如 <video> 和 <audio>)来定义媒介资源.<source> 标签允许您规定可替换的视频/音频文件供浏览器 ...
- 使用air进行移动app开发常见功能和问题(一)
1. 获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...
- 使用AIR进行移动APP开发常见功能和问题(上)
1. 获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...
- (转)AS3-元数据Embed嵌入说明
转自:http://www.shareme.cn/blog/article.asp?id=498 /* * 没有设置,Flash会在源属性中根据导入资源文件的扩展名载入合适的类型 * ...
- as3.0 [Embed]标签嵌入外部资源
1.[Embed]嵌入资源 ActionScript代码的顺序非常重要.你必须在声明变量前添加[Embed]元数据标签,而且这个变量的类型会是Class; package { import flash ...
- as3中的embed
actionscript3允许把外部swf直接用Embed标记嵌入到主类中(当然用UrlLoader动态加载也行) 原 作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com 关 ...
- AS3条件编译
package { import flash.display.Sprite; public class Main extends Sprite { public function Main() { s ...
- 结合JSFL/actionscript 实现轮廓动画
动画前半段通过JSFL获取轮廓数据,并在EnterFrame中逐个边缘画出的:后半段机枪动画是美术做好的flash动画. 这里只放出actionscript代码,而JSFL代码涉及到一个工程,暂时保密 ...
随机推荐
- php简单实现MVC
在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中.MVC足以应对大多数的情况,但还有一些情况是其不太适合的,如比较简单的个人博客,对于只有几百篇文章量级的博客,使用MVC让人觉得有些太复杂 ...
- EasyUI 添加tab页(iframe方式)
function addTab(title, href,icon){ var tt = $('#tabs'); if (tt.tabs('exists', title)){//如果tab已经存在,则选 ...
- shell部分命令缩写
bin = BINaries /dev = DEVices /etc = ETCetera /lib = LIBrary /proc = PROCesses /sbin = Superuser BIN ...
- 使用VSS2005的时候报错:输入正确的服务器地址依然出错了
使用VSS2005的时候报错:输入正确的服务器地址依然出错了 使用VSS2005的时候报错: 在安装完vss客户端,进入vss服务器的时候,需要vss服务器的ip和数据库名称.以及初始化文件, 我在进 ...
- u-boot向linux内核传递启动参数(详细)
U-BOOT 在启动内核时,会向内核传递一些参数.BootLoader 可以通过两种方法传递参数给内核,一种是旧的参数结构方式(parameter_struct),主要是 2.6 之前的内核使用的方式 ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.6
If $\sen{A}<1$, then $I-A$ is invertible, and $$\bex (I-A)^{-1}=I+A+A^2+\cdots, \eex$$ aa converg ...
- HDU 3533 Escape BFS搜索
题意:懒得说了 分析:开个no[100][100][1000]的bool类型的数组就行了,没啥可说的 #include <iostream> #include <cstdio> ...
- UPC OJ 一道水题 STL
Problem C: 字符串游戏 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 10 Solved: 3 [Submit][Status][Web ...
- python PIL下的各种问题
为了实现验证码的功能,使用了PIL.结果出现各种问题: 先是"ImportError: The _imagingft C module is not installed",goog ...
- CentOS无损调整home,root磁盘的大小
调整硬盘分区大小想增加root空间,减少home空间. 需要说明的是整个操作需要使用root用户. 1.查看硬盘使用情况. [root@Slave1 /]# df -h Filesystem Size ...