如何在 FlashBuilder 中使用外部动作脚本类(我以为我知道)

Posted

技术标签:

【中文标题】如何在 FlashBuilder 中使用外部动作脚本类(我以为我知道)【英文标题】:How to use external actionscript classes in FlashBuilder (thought I knew) 【发布时间】:2011-01-30 20:31:35 【问题描述】:

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

“1120:未定义属性 csv 的访问。” 和 "1120: 访问未定义的属性 completeHandler。"

我唯一能想到的是它没有正确导入 csv 类,或者类本身以某种方式损坏?我知道我的导入路径是正确的,因为我是根据自动提示直接输入的。下面的代码是直接从 csv lib 站点上的操作指南 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>

【问题讨论】:

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

【讨论】:

啊.. 我认为在这种情况下导入导入脚本块就像任何普通代码一样播放。但是你说的有道理,而且有效!谢谢。

以上是关于如何在 FlashBuilder 中使用外部动作脚本类(我以为我知道)的主要内容,如果未能解决你的问题,请参考以下文章

FlashBuilder 4.6 或 4.7:如何提高 IPA (ios) 包的生成速度

stm32外部中断引脚模式改变

STM32共用中断线的外部中断引脚的判断

Away3D 和 FlashBuilder - 角色交互

如何将 Flash builder 项目作为库包含在 android Studio 中?

Flash builder 4.6 到 Eclipse indigo