在ActionScript Project中嵌入资源

Flash中使用外部资源是很方便的,可以用从外部加载或者导入进来,再拖拉到舞台或直接用程序控制。然而在Flash中写代码是很痛苦的,很多开发者喜欢用Flex Builder、FDT等IDE来方便编码。但这些IDE不像Flash那样有可视的舞台,只能通过编程来使用外部资源。本文以Flex Builder为例讲解。如果你想用Flash之外的IDE开发一些大型RIAs,本文可能对你有所帮助。

从嵌入位图资源说起,看下面代码。

package {
	import flash.display.Bitmap;
	import flash.display.SimpleButton;
	import flash.display.Sprite;	
	public class BitmapAssetDemo extends Sprite {
		[Embed(source="../assets/Background.png")]
		public var Background : Class;  
		[Embed(source="../assets/PlayBtn_upSkin.png")]
		public var Button_upSkin : Class;  
		[Embed(source="../assets/PlayBtn_overSkin.png")]
		public var Button_overSkin : Class;
		[Embed(source="../assets/PlayBtn_downSkin.png")]
		public var Button_downSkin : Class; 
		public function BitmapAssetDemo() {
			var bg : Bitmap = new Background() as Bitmap;
			addChild(bg);
			bg.x = 100;
			bg.y = 60;	
			var sb : SimpleButton = new SimpleButton(); 
			sb.upState = new Button_upSkin();
			sb.overState = new Button_overSkin();
			sb.downState = new Button_downSkin();
			sb.hitTestState = new Button_downSkin();
			sb.x = 160;
			sb.y = 215;
			addChild(sb);	
		}
	}
}

上述代码我们嵌入一张背景图片和三张用作SimpleButton状态的图片。每个Embed元数据标签下紧跟一个Class或String类型的变量,该变量相当于该图片在在Flash库中的链接类名。注意实例变量的类型为Bitmap或其子类BitmapAsset。

不知大家注意到没有,一个SimpleButton就对应了三个类,如果直接使用swf格式的SimpleButton简单很多。下面我们就来谈一谈使用AS3嵌入swf资源。

和嵌入位图资源类似,使用AS3嵌入swf资源时也要使用元数据标签及声明Class或String类型的变量。看下面代码。

package {
	import flash.display.MovieClip;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	public class MovieClipAssetDemo extends Sprite {	
		[Embed(source="../assets/SimpleBtn.swf")]
		public var SimpleBtn : Class; 
		public function MovieClipAssetDemo() {			
			var simpleBtn : MovieClip = new SimpleBtn() as MovieClip;
			simpleBtn.x = 160;
			simpleBtn.y = 215;
			addChild(simpleBtn);
			simpleBtn.addEventListener(MouseEvent.CLICK, onClick);
		}
		private function onClick(event : MouseEvent) : void {
			SimpleButton(event.target).x+=5;
		}
	}
}

注意实例simpleBtn是作为MovieClip或其子类MovieClipAsset或MovieClipLoaderAsset来处理的,只有在加载。

使用AS3嵌入声音字体等其它资源跟上面的方法差不多,大家可以参考一下源文件中的SoundAssetDemo.as,点击此处下载。

评论: 2 | 引用: 0 | 查看次数: -
引用小菜[2010-04-06 10:47 AM | 无网站 | 无Mail | 59.108.109.82 | 删除 | 取消审核 | 回复回复]
[正在加载评论信息,请稍候...]
引用Neo[2008-01-29 11:03 AM | 无网站 | 无Mail | 202.106.180.62 | 删除 | 取消审核 | 回复回复]
[正在加载评论信息,请稍候...]
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭