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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 美团面试官问我: ZGC 的 Z 是什么意思

    美团面试官问我: ZGC 的 Z 是什么意思

    2020年11月20日
    249
  • Spidermonkey_gomonkey

    Spidermonkey_gomonkey参考如下:最近升级了系统到MacOSX10.10并且更新了XCode6.1和iOS8.1之前app用到的libmp3lame.a静态库,也要支持64位的模拟器(x86_64)和64位的真机(arm64)指令集。需要重新编译查阅了下资料,按照如下步骤,并做了些注释和改动1.http://sourceforge.net/projects/lame/files/lame/3.9…

    2022年10月16日
    2
  • 欧姆龙plc编程入门视频教程_plc三菱编程入门基础知识

    欧姆龙plc编程入门视频教程_plc三菱编程入门基础知识plc编程入门视频教程http://i.youku.com/u/UNDQzNjIxMjAw/videos

    2022年9月7日
    4
  • c#winform开发中DialogResult的用法[通俗易懂]

    c#winform开发中DialogResult的用法[通俗易懂]1、DialogResult经常用在winform开发中的登录,设置参数中,在主窗体中弹出设置参数的窗体,当我们点击设置参数窗体上的确定按钮时,直接返回设置参数窗体的DialogResult的属性即可,一般设置将属性的值设置为DialogResult.OK,这样怎么实现呢?只需要将设置参数窗体上的按钮的DialogResult属性设置为DialogResult.OK即可,这样按钮在单击时,就将这个…

    2022年6月22日
    44
  • docker 启动容器出现 Exited[通俗易懂]

    有时候在启动容器的时候,启动没报错,但是在执行dockerps-a时发现刚启动的容器状态为Exited(1),这个时候查看日志dockerlogs-f-t–tail20容器ID,发现报chown:changingownershipof’.’:Permissiondenied提示没有权限,这个时候将容器删除,在执行容器启动的命令中加入–privi…

    2022年4月17日
    1.3K
  • 帆软报表,异常问题汇总

    帆软报表,异常问题汇总164.导出excel0kb内存不够或者磁盘空间不足163.UnresolvableOperation:mobileinclassReportDispatcher排除jar包和插件影响的话,可能是LIC里面没有决策平台功能点162.客户嵌入我们的url时出现报错Refusedtodisplay’URL’inaframebecauseitset’X-Fr…

    2022年10月3日
    3

发表回复

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

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