您的位置:首页 > 其它

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

2011-09-22 23:13 405 查看
心得教程类型: 原创

本帖最后由 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还可以监听玩家的名称,装备的名称,这样也很容易的就实现了再聊天窗口中查看玩家的信息和游戏装备属性!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: