如何在FlashBuilder中使用外部actionscript类(我知道)

时间:2011-01-30 20:31:35

标签: actionscript-3 class csv flash-builder external-script

我正在尝试在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>

1 个答案:

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