webgame开发之Flex调用FLash自定义界面

  • 心得教程类型: 原创
    本帖最后由 junxiang 于 2011-7-3 07:20 编辑

    今天做游戏主界面,在群里看见有人讨论如何在Flex中调用Flash里面的组建或者自己搭建的界面,所以抽了点时间写了一个游戏开发中常用的聊天组建提供有用之人学习,觉得没用可以绕道,谢谢!
            其实加载Flash中的自定义的界面有很多方式 比如讲界面转换成swc;发布成swf,或者直接操作fla都可以,不过大家有去玩网页游戏,然后去网页缓存中看资源文件,就会看见很多游戏都有很多空白的swf文件,其实那些大部分都是加密了的swf资源文件(资源发不成swf的好处我就不说了,有兴趣研究的可以去google,百度),下面是我用Flash做的资源swf,然后用Flex加载并显示的例子。
    1、        调用Flash里面的TextArea
    2、        调用Flash里面的TextInput
    3、        调用Flash里面的Button
    以上这些空间都是Flash里面的fl包中的,所以Flex中是没有的,并且fl中的基类组建都比Flex中对应的组建小很多,这个自己去测试!
            详见代码: 
                            import mx.core.UIComponent;
                            /** Flash中的聊天界面 */
                            private var chatMc:MovieClip ;
                            /** Flash中的TextArea */
                            private var chat_content:* ;
                            /** Flash中的TextInput */
                            private var chat_input:* ;
                            /** 发送按钮 */
                            private var chat_send:* ;
                            /** 资源加载器 */
                            private var swfLoader:Loader ;
                            /** 发送私聊的玩家名称 */
                            private var secretChatRoleName:String = "一笑奈何" ;
                            /** MC Contener */
                            private var uiComponent:UIComponent ;                
                            private function initChatUi():void
                            {
                                    uiComponent = new UIComponent();        
                                    uiComponent.width = 600 ;
                                    uiComponent.height= 400 ;
                                    this.addChild(uiComponent) ;
                                    swfLoader = new Loader() ;
                                    swfLoader.load(new URLRequest("assets/chatui.swf")) ;
                                    swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete) ;
                            }
                            
                            private function loadComplete(evt:Event):void
                            {
                                    var chat:Class = swfLoader.contentLoaderInfo.applicationDomain.getDefinition("Chat") as Class ;
                                    chatMc                 = new chat() as MovieClip ;
                                    chat_content = chatMc.getChildByName("chat_content") ;
                                    chat_input = chatMc.getChildByName("chat_input") ;
                                    
                                    chat_send         = chatMc.getChildByName("chat_send") ;
                                    
                                    chat_send.label = "发送" ;
                                    chat_send.addEventListener(MouseEvent.CLICK, sendMessage) ;
                                    uiComponent.addChild(chatMc) ;
                            }
                            
                            private function sendMessage(evt:MouseEvent):void
                            {
                                    /** 聊天信息模板 */
                                    var chatStr:String = "<FONT FACE='宋体' SIZE='16' COLOR='#CFCF00'><b>【世界】<a href='event:" + secretChatRoleName + "'><u>" + secretChatRoleName + "</u></a>:" + chat_input.text + "</b></FONT>\n" ;
                                    chat_content.htmlText += chatStr ;
                                    chat_input.text = "" ;
                            }

    简析:用TextArea的好处在于其htmlText支持html文本,这个不仅支持网页中的字体,段落,等等,还支持表情,网上很多讲表情聊天制作的没怎么看过,不过用这个是可以轻易实现的;不仅如此,<a href='event:" + secretChatRoleName + "'><u>" + secretChatRoleName + "</u></a> 的Link还可以监听玩家的名称,装备的名称,这样也很容易的就实现了再聊天窗口中查看玩家的信息和游戏装备属性!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值