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没有任何优势。
相关文档:
<?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 ......
1、当创建一个数组的时候避免用new操作符,用 var a:Array = [];而不用var a:Array = new Array();
2、快速的复制一个数组:
var copy : Array = sourceArray.concat ();
3、设置一个数组的值是非常忙的:
employees.push ( employee ); employees[2] = employee;
4、从一个数组中取得值的速度是设置一个数组值的两倍 ......
了解Flex程序的生命周期
Flex程序从本质上讲,就是使用了(由AS编写的)Flex框架的Flash程序。
但在Flex程序中可以忽略timeline这个概念,所有的内容都集于一帧。
事实上Flex程序中的根,是继承flash.display.MovieClip的mx.managers.SystemManager。
SystemManager有两帧。第一帧是预加载程序,第二帧是主程序。
因此 ......