首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行时ReferenceError:错误#1065:变量.未定义

运行时ReferenceError:错误#1065:变量.未定义
EN

Stack Overflow用户
提问于 2011-08-22 16:25:26
回答 3查看 6.3K关注 0票数 3

好吧,这件事我需要帮助。我从Flash 4升级到FlashBuilder4.5,并将我的项目切换到4.5.1SDK。我使用一个ant脚本来构建我的项目,所以我修改了它以使用适当的flexTasks.jar、mxmlc等等.

现在,如果我从一个空白的bin调试文件夹开始,那么构建并运行这个应用程序--一切都很好。但是,如果我随后进行代码更改和构建(而不删除bin-debug),那么运行该应用程序我就会得到一个运行时错误:

代码语言:javascript
复制
ReferenceError: Error #1065: Variable ... is not defined.
at flash.display::MovieClip/nextFrame()
at mx.managers::SystemManager/deferredNextFrame()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\SystemManager.as:284]
at mx.managers::SystemManager/preloader_preloaderDocFrameReadyHandler()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\SystemManager.as:2633]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/timerHandler()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\preloaders\Preloader.as:515]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

同样,如果我删除bin调试文件夹并再次编译它,它就不会出现问题。

它所抱怨的变量总是一个Class变量,它指向用作图标的图像文件。用于创建var的代码:

代码语言:javascript
复制
[Embed(source="/assets/icons/close-32x32.png")] 
public var closeIcon:Class;

该文件存在,并且我验证了当它给出错误时,该文件位于bin-调试/资产/图标文件夹和src/资产/图标/文件夹中。

抛出错误后,如果单击Flash中的“继续”按钮,它将再次对指向图像文件的下一个Class变量抛出相同的错误。

有什么想法吗?删除/重新编译需要几分钟,所以显然这让我发疯了。

编辑:在调试模式下编译的Ant任务:

代码语言:javascript
复制
<target name="compile-debug">
    <echo>Compile MXML</echo>
    <mxmlc 
        file="${SRC_DIR}/${MAIN_SOURCE_FILE}"               
        debug="true"
        optimize="false"
        output="${DEBUG_DIR}/${APP_ROOT_FILE}" 
        append="true"               
        actionscript-file-encoding="UTF-8"              
        keep-generated-actionscript="false"
        link-report="MyReport.xml"
        maxmemory="2048m"
        incremental="true">

        <!-- Get default compiler options. -->
        <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
        <load-config filename="${FLEX_HOME}/frameworks/air-config.xml"/>

        <!-- List of path elements that form the roots of ActionScript class hierarchies. -->
        <source-path path-element="${FLEX_HOME}/frameworks"/>

        <!-- Include Themes -->
        <!-- NOTE: Spark theme required -->
        <theme dir="${FLEX_HOME}/frameworks/themes/Spark/">
        <include name="spark.css" />
        </theme>
        <theme dir="${FLEX_HOME}/samples/themes/spark_graphite/">
        <include name="spark_graphite.css" />
        </theme>                

        <!-- List of SWC files or directories that contain SWC files. -->
        <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
        <include name="libs" />
        <include name="../bundles/{locale}" />                  
        </compiler.library-path>

        <!-- uncomment if you have external libs (swc files) -->    
        <library-path dir="${LIB_DIR}/riaspace/" append="true">
        <include name="*.swc" />
        </library-path> 
        <library-path dir="${LIB_DIR}/AlivePDF/" append="true">
        <include name="*.swc" />
        </library-path>             
        <library-path dir="${LIB_DIR}/coltware/" append="true">
        <include name="*.swc" />
        </library-path>
    </mxmlc>

</target>

其中FLEX_HOME =< flash >/sdk/4.5.1

EN

回答 3

Stack Overflow用户

发布于 2011-10-28 21:17:34

答案被埋在马克西姆邮报的中间,他在上面的评论中提到了这一点:

->尝试关闭增量编译。

在简单的mimeType='application/octet-stream'嵌入中,我也遇到了同样的问题,当我阅读Maxim的文本时,这个问题突然消失了,因为我最近改变了我的自定义构建工具,以使用内置编译:“嵌入有时在增量编译过程中失败”。

此失败的结果是.swf包含如下内容:

代码语言:javascript
复制
<DefineBinaryData id='1' length='1024' />

它看起来是空的,而不是这个(从工作文件中):

代码语言:javascript
复制
<DefineBitsLossless2 id='1' encoding='base64'>
(.. in my case, 1024 bytes of base64-encoded data)
</DefineBitsLossless2>

(这为我解决了这件事,所以向Maxim表示非常感谢。我希望它也能帮你解决问题。)

票数 2
EN

Stack Overflow用户

发布于 2013-04-22 05:14:50

我也有同样的问题,所以我“清理”了这个项目,然后重新运行。啊,真灵。

票数 1
EN

Stack Overflow用户

发布于 2015-01-07 19:10:41

我有FlashBuilder4.7,正在使用SDK4.5.1A。

我在2014年圣诞节前使用了Flash调试器版本15,一切正常。我让Firefox设置为默认浏览器。然而,在2015年,Adobe有了一个新的播放器,所以我升级到了版本16,这时我也遇到了同样的问题。经过一番努力,我发现问题与新版本的调试器有关。我不得不将默认浏览器切换到Internet,并安装了Internet播放器调试器。在调试之前,我必须先清理和更新。然后一切又恢复了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7150490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档