flex {as总结}
作为一个不入流的flex开发人员总结一下不入流的感悟。
我一定要记住,as中的变量的作用范围只有两种,function和class,所以要想用闭包就需要一个createFunction的东西才行,不要妄想在for循环中用闭包了。看了一下as3的参考,发现它的前世和lua还真像,as3的继承其实还是prototype来做的,就是lua的元表了,但是as3的代码看起来很像java了,lua会不会也披上OO这个羊皮呢?as3对prototype做了优化,它有static object这一说,不能动态添加属性了,好像在朝着脱离脚本语言的方向发展了。as3的正则和lua的也像。as3的类型算多了,强类型的语言。
在flex的xml解析中,如果是用object,那么如果一个节点只有一个元素就不是数组了,这个是猫腻,导致遍历的时候不能用for了,只好改用xmlList.flex和AJAX在服务器访问上很接近了, flex可以支持socket连接,这个算不错了。
做界面的时候,数据绑定这个还是很管用的,再加上repeater控件,可以消除大部分的循环遍历了。flex做客户端还是很方便的。对网页游戏的架构很感兴趣,还没找到可靠的资料。
会不会有一天java的客户端应用被flash彻底代替?看起来java没有任何优势。
相关文档:
1、XMLSocket对象简介
在概述里,已经提到过了Flash里的XMLSocket对象,它是实现Falsh和服务器Socket间
通信的核心。它允许包含Flash应用的浏览器与服务端建立socket连接,之后Flash应用与服务端就可以相互发送XML数据,而且在一个
socket连接建立之后,在该连接上传送的数据量是没有限制的,直到socket连接关闭。XMLSoc ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
viewSourceURL="srcview/index.html" backgroundColor="0x000000" layout="absolute">
<mx:Script>
&nb ......
as:
var app:Object;
function setApp(ap:Object):void{
this.app=ap;
}
btn.addEventListener(MouseEvent.CLICK,onClick);
function onClick(event:MouseEvent):void{
app.fun(btn.label);
}
flex:
private function onSwfLoaded(event:Event):void
{
myloader.addEventListen ......
<mx:DataGrid id="dg" click="select()" dataProvider= "{modelLocator.resultList}" borderStyle="none"
verticalGridLines="false" horizontalGridLines="false" verticalScrollPolicy="off" rowCount="10"
fontSize="16" fontStyle="normal" fontThickness="0" width="100%" height="100%">
<mx:columns& ......
1、假如一个自定义控件被用在一个主控件里,在自定义控件里的方法可以转换为主控件的方法,完成调用。
userRulesCanvas.mxml 和 editRulesCanvas.mxml
compent控件代码如下:
private function submitClick():void
{
......