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没有任何优势。
相关文档:
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 ......
flex 装载多个module出现: 强制转换类型失败,出现某些类不能转换
例如:
无法将 mx.managers::PopUpManagerImpl@7155ac1 转换为 mx.managers.IPopUpManager。
解决方法是在Application加入引用
1.
import
mx.managers.DragManager;
private
var dragManager : DragManager;
2. ......
<?xml version="1.0"?>
<!-- Simple example to demonstrate the Alert control. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script& ......
Flex事件机制是观察者模式,即首先要注册事件,事件分发后通过事件响应函数进行处理。
例如在AS3中:
button.addEventListener(“click”,onClick);//向button注册一个click事件
internal function onClick(evt:MouseEvent):void{txt.text=“click a button!”;}//事件响应函数 那么注册事件注册什么呢?通 ......