`

flex导入图像和swf的方法

阅读更多
【贝武易科技专业flex3D开发--www.newflash3d.com】
我们通过如下的方法导入图像或swf素材,假设我们素材在的项目下src/assets目录里有文件FigureMov.swf和Figure.png,如图,我们需要把它们导入到我们的flex项目

FigureMov.swf为一个swf动画,我们做了一个简单位移动画,由0帧到25帧,没加脚本。

在我们的主程序输入如下代码就可以直接导入该swf文件到我们flex项目了。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout="absolute" applicationComplete="init();">

<mx:Script>
	<![CDATA[
	    [Embed(source='assets/FigureMov.swf')]
		public var FG:Class;
		public var FGmc:MovieClip = new FG as MovieClip;

		private function init():void{

		    stage.addChild(FGmc);
		}
		
	]]>
</mx:Script>
</mx:Application>

简单的解释一下,
[Embed(source='assets/FigureMov.swf')]\\告诉flex插入文件的路径
public var FG:Class;\\把它作为一个新的类储存下来,可以这么理解
public var FGmc:MovieClip = new FG as MovieClip;\\生成这个类的对象,并定义为MovieClip,“as MovieClip”
当然,把素材导就来后,我们就可以对他进行控制了
加入如下代码
            FGmc.gotoAndStop(10);

新修改的代码如下
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout="absolute" applicationComplete="init();">

<mx:Script>
	<![CDATA[
	    [Embed(source='assets/FigureMov.swf')]
		public var FG:Class;
		public var FGmc:MovieClip = new FG as MovieClip;

		private function init():void{

		    stage.addChild(FGmc);
addEventListener(Event.ENTER_FRAME, aa);
		}
		private function aa(evt:Event):void {
			FGmc.gotoAndStop(10);

		}
		
	]]>
</mx:Script>
</mx:Application>

执行了上面的代码,我们会发现一个问题,FGmc总是停留在一个开始阶段,这是因为导入方法的问题,
    [Embed(source='assets/FigureMov.swf')]
public var FG:Class;
public var FGmc:MovieClip = new FG as MovieClip;
我们的MovieClip总是停在一个地方,它不会根据我们的gotoAndStop(10)来定义它停在什么地方,下面我们通过SWFLoader组件来克服这个问题。(上面是我的理解,如果那位有更好的方法,请不惜赐教)
下面是应用SWFLoader组件的代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init();">
<mx:SWFLoader id="swfload" source="assets/FigureMov.swf"/>
<mx:Script>
	<![CDATA[
	         private var mc:MovieClip;
	    
		private function init():void{
		    mc = swfload.content as MovieClip;
		    addEventListener(Event.ENTER_FRAME, aa);
		}
		private function aa(evt:Event):void {
			mc.gotoAndStop(12);
		}
		
	]]>
</mx:Script>
</mx:Application>

简单的分析一下:
<mx:SWFLoader id="swfload" source="assets/FigureMov.swf"/>
生成一个新的SWFLoader,它的id代号为swfload,导入文件的路径为assets/FigureMov.swf;
通过它来生成一个我们所需要的新的MovieClip实例mc,语法为
mc = swfload.content as MovieClip;
注意文件后面的.content,是swfload的内容。
如果我们需要导入图像,简单的执行
	    [Embed(source='assets/Figure.png')]
	    public var FGB:Class;
	    public var FGbitmap:Bitmap = new FGB as Bitmap;

然后把它加入到场景即可。


  • 大小: 7.1 KB
  • FigureMov.rar (686 Bytes)
  • 描述: FigureMov.swf供下载
  • 下载次数: 168
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics