`

Flex/AIR加载图片的几种方式

阅读更多

网觅得,略作修改。

 

   代码如下: (以下环境运行通过: Flash Builder4, Flex SDK4.1)

<?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"
			   applicationComplete="application1_applicationCompleteHandler(event)">
	<s:layout>
		<s:VerticalLayout horizontalAlign="center" gap="10"/>
	</s:layout>

	<fx:Script>
		<![CDATA[
			import mx.events.FlexEvent;

			//方式1  这种方式编译以后tsj.jpg 会直接编译进swf文件中 所以swf可以独立存在
			[Bindable]
			[Embed(source="/assets/tsj.jpg")]
			private var imgClass:Class;
			
			//方式2
			private var loader:Loader;
			
			protected function application1_applicationCompleteHandler(event:FlexEvent):void
			{
				//方式1的代码
				imageByEmbed.source = imgClass;
				
				//方式2的代码
				loader = new Loader();
				//这里需要注意: 不是_loader.addEventListener  这样是没有效果的
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderImage);
				//这里说一个技巧   当url 中有中文字体的话 使用encodeURI方法 如果没有 则可以不加
				loader.load(new URLRequest(encodeURI("assets/tsj.jpg")));

				//方式3比较简单,但注意必须设置autoLoad属性为true
				imageBySource.source = "assets/tsj.jpg";			
			}

			private function loaderImage(e:Event):void
			{
				imageByLoader.source = e.currentTarget.content;
			}
		]]>
	</fx:Script>
	
	<s:HGroup verticalAlign="middle">
		<s:Label text="方式1:Embed(source=...):"/>
		<mx:Image id="imageByEmbed" width="100" height="100"/>
		<s:Label text="等同于(这里增加了图片加载完成时的Fade效果):"/>
		<mx:Image source="@Embed(source='/assets/tsj.jpg')" creationCompleteEffect="Fade"/>
	</s:HGroup>

	<s:HGroup verticalAlign="middle">
		<s:Label text="方式2:loader:"/>
		<mx:Image id="imageByLoader" width="100" height="100"/>
	</s:HGroup>

	<s:HGroup verticalAlign="middle">
		<s:Label text="方式3:source:"/>
		<mx:Image id="imageBySource" width="100" height="100" autoLoad="true"/>
	</s:HGroup>

	<s:Label text="说明:方式2和3中swf都不会将图片编译进去,图片需要按路径与swf同时发布才能被显示"/>

</s:Application>
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics