大家好,又见面了,我是你们的朋友全栈君。
- 心得教程类型: 原创
本帖最后由 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还可以监听玩家的名称,装备的名称,这样也很容易的就实现了再聊天窗口中查看玩家的信息和游戏装备属性!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137788.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...