bingxingke 2011-03-29
以下在Flex中实现调用swf文件或者swc文件中的帧中的内容: 本项目在Flex Builder3.0 和Flash CS3环境下完成。 在Flex Builder中实现调用swf帧里的内容: 首先,在Flash CS3创建一个ActionScript3.0 的Flash File,然后将两张图片导入库,创建一个影片剪辑,将这两张图片放入这个影片剪辑里,如图一所示: (图一) 然后在这个影片剪辑里的第一帧放入图片pic1_1,在第二帧里放入图片pic2_2,如图二图三所示:
(图二) (图三) 然后在这个影片剪辑右键,选Linkage,再在里面选择Export for Actionscript,并输入类名(而这个类名,就是要在程序中引用的,在这里我输入mypic1),如图四、图五所示: (图四) (图五) 最后将这个flash publish出来,生成一个swf文件。然后打开Flex builder,将swf文件放在libs目录下。 swfpro.mxml: <?xml version="1.0" encoding="utf-8"?> <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[public var varpic:mypicClass; public var ppic:mypic1=new mypic1(); public function init():void{ //这个是加载swf里的第一帧的东西,在flex中调用swf里的帧的内容,我只知道这个方法,有更好的方法请回复我。呵。 varpic=newmypicClass(); varpic.mouseEnabled=true; this.addChild(varpic);//这里是添加到UIComponent中,所以不能使用gotoandplay来调用第二帧的内容 varpic.x=0; varpic.y=0; } ]]> </mx:Script> </mx:Application>mypicClass.as: package { importmx.core.UIComponent; importflash.display.MovieClip; [Embed(source='../libs/mypic.swf',symbol="mypic1")] publicclassmypicClassextendsUIComponent { publicfunctionmypicClass() {//此处为空} } }/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 在Flex 中调用swc文件里帧的内容: 注:使用的flash与上面的一样,只是在影片剪辑里点击右键,选择“Export swc file”,如下图所示: swfpro1.mxml: <mx:Script> <![CDATA[ importflash.display.*; importmx.core.UIComponent; importflash.display.MovieClip; publicvarvarpic:mypicClass; publicvarppic:mypic1=newmypic1(); privatevaruc:UIComponent=newUIComponent(); publicvarii:int=1; publicfunctioninit():void{ this.addChild(uc); uc.addChild(ppic); ppic.x=0; ppic.y=0; ppic.gotoAndStop(1); ppic.addEventListener(MouseEvent.CLICK,mouseHandler); } privatefunctionmouseHandler(evt:MouseEvent):void{ if(1==ii){ ppic.gotoAndStop(2);//这里实现了获取swc文件里帧的内容 ii=0; }else{ ppic.gotoAndStop(1); ii=1; } } ]]> </mx:Script> |
来源:http://hi.baidu.com/suterfo/blog/item/33a7d645410efa3786947357.html