方式一:
方式二:
引入代码:
1.方式一会在编译的时候就将图片编入swf文件中,会显著增大swf文件的大小。
2.方式二会在需要加载图片的时候动态去加载。
3.如果使用方式1只要设置好了图片路径就不会出现图片显示不出来的问题,如果不需要考虑swf文件的大小还是尽量使用方式1。
4.如果使用方式2,图片有时候会显示不出来,下面举例说明图片出不来的情况。
eg:
[Bindable]
[Embed(source='resources/icons/chart_bar.png')]
public var icons:Class;
绑定成类。
方式二:
var icons:String = 'resources/icons/chart_bar.png';
引入代码:
var image:Image=new Image();
image.source=icons;
chinaN.addChild(image);
1.方式一会在编译的时候就将图片编入swf文件中,会显著增大swf文件的大小。
2.方式二会在需要加载图片的时候动态去加载。
3.如果使用方式1只要设置好了图片路径就不会出现图片显示不出来的问题,如果不需要考虑swf文件的大小还是尽量使用方式1。
4.如果使用方式2,图片有时候会显示不出来,下面举例说明图片出不来的情况。
eg:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600" creationComplete="init();" xmlns:local="*" >
<fx:Script>
<![CDATA[
/**
* 该swf将会在根目录下的mis2路径下,并没有放在根目录下。
**/
private function init():void{
/** 在控件上直接定义的iamge对象,可以使用方式二直接设置,图片可以展示出来*/
testImage.source = "assets/GT_AREA/GT_AREA_3.png";
test1();
test2();
}
/**
* 1.向控件上已定义的对象中添加image对象(该图片对象经过了一个hbox包装),使
* 用方式二,图片不能正常展现
* 2.如果将图片路径从根目录开始写(mis2/assets/GT_AREA/GT_AREA_2.png),就
* 可以正常展现
* 3.我们可以认为,如果图片对象经过了包装且引入的swf文件不在根目录下,flex
* 不会从swf相对路径查找图片,而是从根目录查找
**/
private function test1():void{
var hboxTemp:HBox = new HBox();
var iamge:Image = new Image();
iamge.source = "assets/GT_AREA/GT_AREA_2.png";
hboxTemp.addChild(iamge);
hboxT1.addChild(hboxTemp);
}
/** 向控件上已定义的对象中添加image对象,使用方式二,图片可以显示出来*/
private function test2():void{
var iamge:Image = new Image();
iamge.source = "assets/GT_AREA/GT_AREA_1.png";
hboxT2.addChild(iamge);
}
]]>
</fx:Script>
<mx:HBox y="0" id="hboxT2" width="700" height="250" backgroundColor="#00FFff"></mx:HBox>
<mx:HBox y="250" id="hboxT1" width="700" height="250"></mx:HBox>
<mx:Image y="500" id="testImage" width="700" height="250" >
</mx:Image>
</s:Application>