我正在尝试在Air应用程序中实现CSVLib,并且我收到的错误对我来说似乎完全不合逻辑。
“1120:访问未定义的属性csv。” 和 “1120:访问未定义的属性completeHandler。”
我唯一能想到的是它没有正确导入csv类,或者类本身是以某种方式被破坏的?我知道我的导入路径是正确的,因为我直接根据自动提示键入它。下面的代码直接从csv lib站点上的how-to wiki中复制。
或者,为了让外部actionscript类在flashbuilder中工作,你需要做些什么特别的事情吗?
<fx:Script>
<![CDATA[
import com.shortybmc.*;
import com.shortybmc.data.parser.CSV;
var csv:CSV = new CSV();
csv.addEventListener (Event.COMPLETE, completeHandler);
csv.load (new URLRequest('example-2.csv'));
function completeHandler (event: Event)
{
trace ( csv.data.join('\r') );
// do something ...
}
]]>
</fx:Script>
答案 0 :(得分:1)
在这种情况下,问题出在其他地方。 fx:Script
标记位于MXML文件中,该文件表示类定义。
您的错误发生了,因为您在类定义中有代码(即在方法之外)。你可以写一下这个例子:
<fx:Script>
<![CDATA[
import com.shortybmc.*;
import com.shortybmc.data.parser.CSV;
private var csv:CSV;
private function init ():void
{
csv = new CSV();
csv.addEventListener (Event.COMPLETE, completeHandler);
csv.load (new URLRequest('example-2.csv'));
}
private function completeHandler (event: Event):void
{
trace ( csv.data.join('\r') );
// do something ...
}
]]>
</fx:Script>
然后你需要确保实际调用init
方法;您可以在MXML对象的完整处理程序中执行此操作。