flex开发陷阱(不断补充)

对于flex开发过程中遇到的奇怪问题,我会不断总结到这里

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()方法


待续...
posted @ 2009-10-08 10:18  静候良机  阅读(1784)  评论(2编辑  收藏  举报