flex开发陷阱(不断补充)
对于flex开发过程中遇到的奇怪问题,我会不断总结到这里
1. toString()
待续...
1. toString()
在向函数传递参数的时候,如果你的参数定义成string,而你的参数值本身不是string类型,最好就先对参数值执行toString(),否则,有可能会发生非常奇怪的现象,在调试器中已经可以看到值,但是到了函数内部就是出错,非常莫名其妙<?xml version="1.0" encoding="utf-8"?>点击按钮会是什么结果?
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:XML id="testXml" xmlns="">
<data>
<date>1999/2/27</date>
</data>
</mx:XML>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function getDate(dateStr: Object): void
{
Alert.show((new Date(dateStr)).toString());
}
]]>
</mx:Script>
<mx:Button label="获取日期" click="getDate(testXml.date)"/>
</mx:Application>
结果是 Invalid Date
对代码进行改动:<mx:Button label="获取日期" click="getDate(testXml.date.toString())"/>
才可以正确获取到日期对象
总结:对于trace或者调试器会对对象自动进行toString()操作,而对于函数调用需要主动调用toString()方法
待续...