flex导入图像和swf的方法

【贝武易科技专业flex3D开发--www.newflash3d.com】
我们通过如下的方法导入图像或swf素材,假设我们素材在的项目下src/assets目录里有文件FigureMov.swf和Figure.png,如图,我们需要把它们导入到我们的flex项目
[img]/upload/attachment/54530/317cdcae-eb5e-3d0a-89c7-1edb08c6782a.jpg[/img]
FigureMov.swf为一个swf动画,我们做了一个简单位移动画,由0帧到25帧,没加脚本。
[flash=500,250]http://www.newflash3d.com/blogfile/swf/FigureMov.swf[/flash]
在我们的主程序输入如下代码就可以直接导入该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;

然后把它加入到场景即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值