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

webgame开发之Flex调用FLash自定义界面心得教程类型:原创本帖最后由junxiang于2011-7-307:20编辑今天做游戏主界面,在群里看见有人讨论如何在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还可以监听玩家的名称,装备的名称,这样也很容易的就实现了再聊天窗口中查看玩家的信息和游戏装备属性!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137788.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HDU 1080 DP

    HDU 1080 DP

    2022年2月4日
    37
  • 计算机技术与生物学的关系,生物信息学复习整理

    计算机技术与生物学的关系,生物信息学复习整理生信整理一、重要概念1.生物信息学的定义、研究内容、组成采用信息学的方法来研究生命科学定义:生物信息学迄今为止尚没有一个标准定义(广义:生命科学中的信息科学。生物体系和过程中信息的存贮、传递和表达;细胞、组织、器官的生理、病理、药理过程的中各种生物信息。狭义:生物分子信息的获取、存贮、分析和利用。)研究内容:①基础研究——数学:模型、算法;IT:数据库、计算机软、硬件开发②应用(生命科学研发)—…

    2022年7月11日
    16
  • 半个月时间把MySQL重新巩固了一遍,梳理了一篇几万字 “超硬核” 文章!

    半个月时间把MySQL重新巩固了一遍,梳理了一篇几万字 “超硬核” 文章!MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。

    2022年6月14日
    24
  • 关于左右连接「建议收藏」

    关于左右连接「建议收藏」首先来看一下两张主要的表:persons表orders表现在我们希望列出所有的人,以及他们的定购。SELECTpersons.last_name,persons.first_name,orders.order_noFROMpersonsLEFTJOINordersONpersons.pid=orders.pidORDER

    2022年9月18日
    5
  • OpenCV实践之路——使用imread()函数读取图片的六种正确姿势

    经常看到有人在网上询问关于imread()函数读取图片失败的问题。今天心血来潮,经过实验,总结出imread()调用的四种正确姿势。通常我要获取一张图片的绝对路径是这样做的:在图片上右键——属性——安全——对象名称。然后复制对象名称就得到了图片的绝对路径。如图:然而这样得到的路径直接复制粘贴到vs里面会直接报错,如下:可以看出我们获取的绝对路

    2022年4月4日
    252
  • java中json转map

    java中json转mapjson转map转载自https://stackoverflow.com/questions/443499/convert-json-to-mapTypemapType=newTypeToken<Map<String,Map>>(){}.getType();Map<String,String[]>son=newGson().fromJson(easyString,mapType);

    2022年6月29日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号