首页 > 设计 > WEB开发 > 正文

8.1.载入并显示图像

2023-08-02 23:09:25
字体:
来源:转载
供稿:网友
8.1.1 . 问题
我需要使用Flex 组件来显示一个图片。
8.1.2 . 解决办法
使用一个嵌入声明把图像文件编译到SWF 文件中,或者在在运行时载入它。
8.1.3 . 讨论
Flex 支持在运行时或在编译时导入GIF,JPEG,PNG 和SWF 文件,支持SVG 文件在编译时嵌入。你选择的方法依赖于图片的文件类型和应用程序的参数。任何嵌入式图像已经成为SWF 文件的一部分,所以不须要任何时间加载。相应的代价是增加程序的大小,这会减缓应用程序的初始化过程。使用嵌入式图像方式,当图像文件的改变时,你还需要重新编译你的应用程序。

另外,你也可以使用这两种方式在运行时装载资源,一种是把图像的source 属性设置为一个URL 地址,或者使用URLRequest 对象取得返回值来装载操作一个BitmapAsset 对象。

您可以在SWF 文件运行从本地文件系统装载资源,或者你可以存取远程资源,通常是通过网络的一个HTTP 请求。这些图像独立于你的程序;你可以修改他们,而不需要重新编译,只要修改后的图像名称保持不变。

任何的SWF 文件只能通过一种方式访问外部资源,本地或通过网络; 不能使用两种方式访问。当你编译应用程序时,你可以使用use-network 标志来决定SWF 文件允许的访问方式。

当use-network 标志设置为false 时,你能够访问本地文件系统的资源,但不能访问网络。默认值是true,这允许你通过网络访问资源,但不能访问本地文件系统。
要嵌入一个图像文件,使用嵌入元数据属性:
+展开
-ActionScript
[Embed(source="../assets/flag.png")]
private var flag:Class;

现在,这个类的对象可以被设为一个图像的source 属性:
+展开
-ActionScript
var asset:BitmapAsset = new flag() as BitmapAsset;
img3rd.source = asset;

另外,你也可以设source 属性为本地或外部文件系统:
+展开
-XML
<mx:Image source="http://server.com/beach.jpg"/>

完整的例子如下:
+展开
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400height="300">
<mx:Script>
<![CDATA[
import mx.core.BitmapAsset;
[Embed(source="../assets/flag.png")]
private var flag:Class;
private function imgMod():void
{
var asset:BitmapAsset = new flag() as BitmapAsset;
img3rd.source = asset;
}

]]>
</mx:Script>
<mx:Image source="../assets/flag.png"/>
<mx:Image source="{flag}"/>
<mx:Image id="img3rdcreationComplete="imgMod()"/>
</mx:VBox>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表