Ошибка во время выполнения Flex 4.5.1 ReferenceError: Ошибка № 1065: переменная ... не определена - PullRequest
3 голосов
/ 22 августа 2011

Хорошо, мне нужна помощь в этом.Я обновил Flash Builder 4 до Flash Builder 4.5 и переключил свой проект на 4.5.1 SDK.Я использую ant-скрипт для сборки своего проекта, поэтому я изменил его, чтобы использовать соответствующий flexTasks.jar, mxmlc и т. Д. *

Теперь, если я начну с пустой папки bin-debug, то создайтеи запустить приложение все работает отлично.Однако, если я затем произвожу изменение и сборку кода (без удаления bin-debug), то запускаю приложение и получаю ошибку времени выполнения:

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-debug и компилируюснова он работает без проблем.

Переменная, на которую он жалуется, всегда является переменной Class, которая указывает на файл изображения, используемый в качестве значка.Код, который я использую для создания переменной:

[Embed(source="/assets/icons/close-32x32.png")] 
public var closeIcon:Class;

Файл существует, и я убедился, что когда он выдает эту ошибку, файл находится в папке bin-debug / assets / icons и в src / assets /значки / папка.

После появления ошибки, если я нажимаю кнопку «Продолжить» в Flash Builder, она снова вызывает ту же ошибку в следующей переменной Class, указывающей на файл изображения.

Любаяидеи?Удаление / перекомпиляция занимает несколько минут, поэтому, очевидно, это сводит меня с ума.

Редактировать: Задача Ant, которая компилируется в режиме отладки:

<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 Builder> /sdks/4.5.1

Ответы [ 3 ]

2 голосов
/ 29 октября 2011

Ответ похоронен в середине Пост Максима , на который он ссылался в комментарии выше:

-> Попробуйте отключить инкрементную компиляцию.

У меня возникла та же проблема с простым встраиванием mimeType='application/octet-stream', и при чтении текста Максима это выпрыгнуло, потому что я недавно изменил свои инструменты пользовательской сборки для использования инременментальной компиляции: «Внедрение иногда не удается во время инкрементальной компиляции»

Результатом этой ошибки является то, что .swf содержит что-то вроде этого:

<DefineBinaryData id='1' length='1024' />

, который выглядит как пустой вместо этого (из рабочего файла):

<DefineBitsLossless2 id='1' encoding='base64'>
(.. in my case, 1024 bytes of base64-encoded data)
</DefineBitsLossless2>

(Это решило это для меня, так что большое спасибо Максиму. Надеюсь, это решит это и для вас.)

1 голос
/ 07 января 2015

У меня Flash Builder 4.7 и я использую sdk 4.5.1A.

До Рождества 2014 года я использовал отладчик Flash Player версии 15, и все работало. Firefox был настроен в качестве браузера по умолчанию. Однако в 2015 году у Adobe появился новый плеер, поэтому я обновил его до версии 16, и тогда у меня возникла та же проблема. После долгих усилий я обнаружил, что проблема связана с новой версией отладчика Firefox Flash Player. Мне пришлось переключить браузер по умолчанию на Internet Explorer и установить отладчик Flash Player в Internet Explorer. Перед отладкой мне пришлось сначала почистить и обновить. Тогда все снова заработало!

0 голосов
/ 22 апреля 2013

У меня была такая же проблема, поэтому я "очистил" проект и затем снова запустил.Это сработало.

...