打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
博客园手机版-使用FlexComponentKit实现flash和flex完美互通
userphoto

2010.04.22

关注
看了点资料,把flex中使用flash的影片剪辑得方法研究了一下,着重研究了一下FlexComponentKit,下面说说flex中使用flash影片剪辑的方法。

1,下载FlexComponentKit

  下载地址https://www.adobe.com/cfusion/entitlement/index.cfm?e=flex%5Fskins进去后,如果没有账号要注册一个账号,登录,找到最下面的Download Flex Component Kit for Adobe Flash CS3 Professional,下载

2,安装FlexComponentKit

  如果你电脑中又Adobe Extension Manager直接双击就可以安装了,如果你安装得精简版的flash或者什么版本的,反正就是找不到Adobe Extension Manage,没办法你还得下载个Adobe Extension Manager安装,cs3的下载地址http://www.adobe.com/exchange/em_download/em18_download.html

3,研究一下FlexComponentKit到底是个嘛玩意,干嘛用的

       新建一个MyBallfla文件,插入一个Ball的影片剪辑,这个Ball就是我们准备在flex中使用的影片剪辑,Ball里面比较简单就是一个小球得运动,从上到下,附件里面又大家可以看一下

下面我怎么看看怎么把这个剪辑导出去,找到库里面的Ball,右键链接,看到这个

我们注意一下他的基类是flash.display.MovieClip,就是影片剪辑的继承,如果我们安装好了FlexComponentKit,在库中点击这个Ball,然后执行菜单中的-命令—Covert Symbol to Flex Component,然后flash会给你打印出一个信息,告诉你活已经干完了,你可以在flex中使用这个组件了,但是你还需要发布一下,这时候停一,下我们再来看看这个Ball,右键-链接我们会看到这个

他的基类变成了mx.flash.UIMovieClip,这下童鞋们差不多都明白了,FlexComponentKit就是想办法把flex中的这个mx.flash.UIMovieClip搞进来,我们做的原件都是他的继承,那么我们就可以像使用组件一样使用这个影片剪辑了,我们再给这个类一个包名com,变成这个

然后我们发布一下(菜单-文件-发布),找到我们的这个flash的保存目录,你就可以看到一个MyBall.swc,这下大伙差不多都明白下面flex该怎么用了

4flex中使用影片剪辑Ball

       新建一个工程flexandflash,右键-properties—Flex Builder Path—Library path—Add SWC然后就可以选择我们刚才得swc文件了。通过下面的代码

 

代码
1
<?xml version="1.0" encoding="utf-8"?>
2
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:com="com.*">
3
    
<com:Ball x="100" y="100" />
4
</mx:Application>
5

 

5,高级用法

  我们发现我们这种方式实现的东西,利用SWFLoader实现的东西没啥区别,SWFLoader多简单啊,我们在这里折腾半天,其实我们看到上面得过程,知道这种方法是把影片剪辑作成了一个组件来使用,组件说白了是个类,是类就有属性方法,当然还有我们经常用的事件,我们现在来看看这个的用法

MyBall.fla下面写个类,在com包下面FlashBall.as

 

代码
 1
package com
 2
{
 3
    
import flash.events.Event;
 4
    
 5
    
import mx.flash.UIMovieClip;
 6

 7
    [Event(name
='begin',type='flash.events.Event')]
 8
    [Event(name
='finish',type='flash.events.TextEvent')]
 9
    
public class FlashBall extends UIMovieClip
10
    
{
11
        
public var data:String;
12
        
public function FlashBall()
13
        
{
14
            
super();
15
        }

16
        
public function replay():void{
17
            gotoAndPlay(
1);
18
            dispatchEvent(
new Event('begin'))
19
        }

20
    }

21
}

22

类里面啥东西自己看吧,额就不解释了

我们在Ball的最后一帧发出结束得事件

Ball得第20帧写下

 

代码
stop();
import flash.events.TextEvent;
var eventObj:TextEvent 
= new TextEvent("finish");
eventObj.text 
= data;
dispatchEvent(eventObj);

这样我们在replay的时候会发出begin事件,在结束得时候会发出finish事件

同时我们把Ball的基类改成我们刚刚写好的FlashBall

别忘了发布

回到flex中我们已经可以使用My:Ball标签了

 

 

代码
 1
<?xml version="1.0" encoding="utf-8"?>
 2
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:My="My.*" fontSize="12">
 3
    
<mx:Script>
 4
        
<![CDATA[
 5
            import mx.controls.Alert;
 6
            private function finishHandler(event:TextEvent):void{
 7
                Alert.show(event.text, "完成");
 8
            }
 9
            private function clickHandler():void{
10
                flashball.replay();
11
                flashball.data = "重新播放";
12
            }
13
        
]]>
14
    
</mx:Script>
15
    
<My:Ball  id="flashball" x="100" y = "100" data="播放"
16
        begin
="trace('ball begining')" finish="finishHandler(event)">
17
        
18
    
</My:Ball>
19
    
<mx:Button x="0" y="0" label="Play" click="clickHandler()"/>
20
</mx:Application>
21

  

里面是我使用这个组件做的试验,大家可以看试试他们得属性方法,具体怎么弄大家慢慢探索

 还有就是别忘了修改后别忘了发布这一步,这一步会经常出错

6,结束

这是我看一个视频,从里面学来的,是个英语视频,也不知道我说错没有,大家可以从电驴下载下来看看(Lynda.com.Adobe.Flex.3.Beyond.the.Basics)如果有啥错了,谁看到了给我说声,谢谢

 

/Files/shai/MyBall.rar 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
新手怎样学习Flash及as脚本编程?
在各种浏览下html嵌入flash/flex以及flex和java相互调用的简单例子
【湖南工业大学】【现代教育技术】课程12.1
Flash cs3、Flex与asp、php通信总结(包含数据库)-Flash actio...
Flex2.0文件上传功能(Flex2.0正式版)
收集網上的flex與php相關視頻的代碼
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服