- 浏览: 12159 次
最新评论
[转] [flash/flex] 第二章 第二节: 嵌入式资源-as3-javaeye技术网站
2011年03月01日
http://bbs.9ria.com/viewthread.php?tid=76876&extra =page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter %3D2592000
嵌入式资源
另一个常用功能就是嵌入外部资源(XML或者Pixel Bender Kernel 滤镜)时会用到.我们经常会碰到的问题就是将那些运行时依赖的资源嵌入到外部swf中.一些服务端拒绝swf拥有外部依赖(external dependency),所以假设你开发了一个小型的应用或游戏并且在几分钟后你需要快速的删除所有外部依赖(external dependency),你可以使用Embed标签来实现这一功能.
在下面的代码中,我们使用Embed标签来嵌入一个外部的 Pixel Bender 滤镜
[Embed(source="myFilter.pbj", mimeType="application/octet-stream")] var myShaderKernel:Class;
在编译时, Pixel Bender 滤镜将被当做一个ByteArray嵌入,注意mimeType application/octet-stream的用途就是允许嵌入资源被当做ByteArray.
更一般的我们也可以将XML作为嵌入资源:
import flash.utils.ByteArray; [Embed(source="test.xml", mimeType="application/octet-stream")] var xmlStream:Class; // instanciate the stream as a ByteArray var xmlBytes:ByteArray = new xmlStream(); // read the XML String from the byte stream var xmlString:String = xmlBytes.readUTFBytes( xmlBytes.bytesAvailable ); // instanciate a XML object by passing the content var myXML:XML = new XML(xmlString); /* outputs : */ trace ( myXML ); // outputs : 3 trace ( myXML.item.length() );
任何东西都可以通过这种方法嵌入,我们通过bytearray的API来操作这里嵌入的原始二进制数据 .但需要强调的是上一段代码有一点冗余,所以我们可以通过使用特定的mimeType,来强制的要求转码器将其映射为特定的类型.在下列的代码中,你会看到同样的嵌入使用mimeType后代码变得极其简单.
import flash.utils.ByteArray; [Embed(source="test.xml", mimeType="text/xml")] var xmlStream:Class; // instanciate a XML object by passing the content var myXML:XML = new XML (xmlStream.data); /* outputs : */ trace ( myXML ); // outputs : 3 trace ( myXML.item.length() );
很便捷吧?接下来让我们来了解一下怎么样在运行时注入和重建bytes的内容.Adobe Flash Player 提供了一个非常强大的API来处理这种情景.
注入bytes
一般来说注入的对象可以是图像,字体,甚至是swf.Flash player 中没有SWF类型,但是你猜怎么着?Loader对象的API中有一个loadBytes.
这就是允许我们将swf当做一个ByteArray注入到Loader对象中并可以运行它:
import flash.utils.ByteArray; import flash.display.Loader; [Embed(source="test-loading.swf", mimeType="application/octet-stream")] var swfStream:Class; // instanciate the stream as a ByteArray var swfBytes:ByteArray = new swfStream(); // instanciate a Loader var myLoader:Loader = new Loader(); // inject the embedded stream inside the Loader // the SWF is executed automatically myLoader.loadBytes(swfBytes);
为了显示它,我们只需要将Loader添加到显示列表即可:
import flash.utils.ByteArray; import flash.display.Loader; [Embed(source="test-loading.swf", mimeType="application/octet-stream")] var swfStream:Class; // instanciate the stream as a ByteArray var swfBytes:ByteArray = new swfStream(); // instanciate a Loader var myLoader:Loader = new Loader(); // show the Loader object addChild ( myLoader ); // inject the embedded stream inside the Loader // the SWF is executed automatically What can you do with bytes ?
发表评论
-
Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
2012-07-06 09:52 547Oracle 函数大全(字符串函数,数学函数,日期函数 ... -
python yamal 配置格式
2012-07-06 09:46 786Python App Engine 应用 ... -
如何替换你的LOGO
2012-07-06 09:30 601为了改变标志的商店在Magento请使用以下指令: ... -
JavaScript刷新iframe的方法
2012-07-05 20:45 628代码: 隐藏显示 方法1最妥当,支持跨域。其实我 ... -
android 为 ListView Item中的组件添加事件 以及更新数据
2012-07-03 13:44 1004// 部分代码如下: 其中holder.count 是 ... -
Flex中取DataGrid里的值
2012-07-02 12:50 528用outerDocument来取mx:itemRender ... -
Mate-基于标签的框架
2012-07-02 12:49 669Mate 将会成为Flex领域的另一个热点。它使用设置(c ... -
分页组件(引用Super Flex文章)
2012-07-02 12:49 542这套组件 主要是用到了LinkButton和Repeate ... -
Flex:在有序DataGrid顶部添加新行
2012-07-02 12:49 420... -
flex 中Scroller的使用
2012-07-02 12:49 747height="100%"> ... -
Flex 开发框架汇总
2012-07-01 10:17 576现有成熟常用的Flex ... -
Flex 数据易犯错误: 常见误用和错误
2012-07-01 10:17 661在某些情形下,绑定操作似乎不能正常工作,此时你可能非常懊恼 ... -
ArcGIS Flex API Flexviewer使用
2012-07-01 10:17 552开发Widget开发工具:Flex Builder3 开 ... -
Flex在匿名方法移除自身的侦听方法
2012-07-01 10:17 552Question: 有时我们为了减少不必要的参数传递,使用 ... -
[nginx] LEMP构建高性能WEB服务器(第二版) 还没有试验,今天准备
2012-07-01 10:16 673前言: 本文 ... -
Flash WebGame 开发经验心得和PureMVC框架细说(2011-06-29 21:00:52)
2012-06-30 16:42 661Flash WebGame 开发经验心得和PureMVC框架细 ... -
基于Adobe AIR的社交应用开发及案例研究
2012-06-30 16:42 783基于Adobe AIR的社交应用开发及案例研究 2011年0 ... -
大话flex
2012-06-30 16:42 544大话flex 2010年07月04日 前序 我想做点什么 ...
相关推荐
Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mhtJsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht
Flex学习笔记_09 数据绑定_概念、使用 - Java&Flex - JavaEye技术网站 希望对爱好有帮助!!
JSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mhtJSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mht
第一阶段(2周左右每天至少4个小时):入门 目标是:做简单的demo.熟悉环境,工具等。 宗旨是:重敲书本的例子,熟悉语法,规范,流程 参考网文:http://jackweijie.javaeye.com/blog/191452 参考书:Flex 入门...
JDOM处理XML快速上手 - Web UI Design - JavaEye技术网站.mht
Java面试经典试题及答案- SpringArt - JavaEye技术网站
仿照《Flex第一步》第十四章 数据库留言本 改写的。主要是将《Flex第一步》里使用FDS数据传输改为使用Hessian来实现,一些地方做了些简单的修改。 关于Flex使用Hessian进行远程调用,请参考: Flex + Hessian ...
MyEclipse快捷键与插件大全 - 入门技术 - New - JavaEye(1)
所谓万事开头难,共同期待好的向导,故在《FRAME-INTEGERATION》专栏,逐步整理并给出日常开发框架整合此类向导,而此类整合主要关注于Struts2、Spring2、iBatis2及Flex3的种种组合方式整合,而本篇整合仅仅是入门级...
JavaEye博文JavaEye博文JavaEye博文JavaEye博文JavaEye博文
JavaEye新闻月刊_-_2009年3月_-_总第13期.
javaeye: http://xxing22657-yahoo-com-cn.javaeye.com/ 主要发布Java等其他语言的相关文章。 还是那句话: 欢迎有兴趣的朋友共同探讨交流。 同时欢迎有出版合作意向的出版社洽谈出版事宜。
JavaEye+技术架构,讲述java框架的应用
Adobe+Flex编码指南.pdf chart.rar--java+flex图表 Flex3高级图表开发指南.pdf--英文的 Flex+白皮书.pdf flex-demo.rar Flex入门培训资料及PPT.rar ...结合java做的flex图表例子 - 点点滴滴 - JavaEye技术网站.mht
//-----------按钮提示框----------// <input type="button" name="btn2" id="btn2" value="删除" onclick="return confirm('Yes/No');); //-----------按钮提示框----------// <input type="button" name="btn...
//-----------按钮提示框----------// <input type="button" name="btn2" id="btn2" value="删除" onclick="return confirm('Yes/No');); //-----------按钮提示框----------// <input type="button" name="btn2...
JavaEye新闻月刊 - 2008年3月 总第1期.pdf,JavaEye新闻月刊 - 2008年3月 总第1期.pdf
使用 Eclipse 平台进行调试 - Java - JavaEye论坛
JavaEye论坛热点_-_2008年11月_-_总第6期
策略模式\第三个设计模式:策略模式 - leoyu - JavaEye技术网站.htm