1

我正在尝试在 Air 应用程序中实现 CSVLib,但遇到一个对我来说似乎完全不合逻辑的错误。

“1120:未定义属性 csv 的访问。” 和“1120:访问未定义的属性完成处理程序。”

我唯一能想到的是它没有正确导入 csv 类,或者类本身被某种方式破坏了?我知道我的导入路径是正确的,因为我是根据自动提示直接输入的。下面的代码直接从 csv lib 站点上的 how-to wiki 复制而来。

或者您需要做一些特别的事情来让外部动作脚本类在 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>
4

1 回答 1

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 对象的完整处理程序中执行此操作。

于 2011-01-30T20:36:39.897 回答