Что вызывает ошибку во время выполнения flash / actionscript «WatcherSetupUtil не определен»? - PullRequest
6 голосов
/ 07 июня 2011

У меня есть гибкое приложение («MyApp»), я работаю над тем, где я вижу очень странные и противоречивые ошибки. Одна из ошибок, которые я иногда вижу сразу при запуске приложения, -

"Variable _MyAppWatcherSetupUtil is not defined."

Полный вывод ошибки находится внизу вопроса.

Что делает эту ошибку особенно странной, так это то, что я получаю ее сразу и последовательно после выполнения сборки проекта (т. Е. Много раз запускаю swf, и это всегда происходит), и единственное, что мне нужно сделать, чтобы ошибка исчезла (Я не скажу «исправить это») - это построить проект снова.

Кто-нибудь знает, о чем эта ошибка? Лучшее, что я могу сделать на данный момент, это то, что это может быть как-то связано с переменными привязки (что, по-видимому, подразумевает WatcherUtil), но я не понимаю, почему это будет несовместимо между сборками.


Компиляция с использованием mxmlc из flex_sdk_4.5.0.20967.

Полный вывод ошибки для последней сборки, где это произошло:

Exception thrown: ReferenceError: Error #1065: Variable _MyAppWatcherSetupUtil is not defined.
    at global/flash.utils::getDefinitionByName()
    at MyApp()[C:\code\Sandbox\MyApp\src\MyApp.mxml:6]
    at _MyApp_mx_managers_SystemManager/create()[_MyApp_mx_managers_SystemManager.as:50]
    at mx.managers.systemClasses::ChildManager/initializeTopLevelWindow()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\systemClasses\ChildManager.as:311]
    at mx.managers::SystemManager/initializeTopLevelWindow()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\SystemManager.as:3063]
    at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::kickOff()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\SystemManager.as:2849]
    at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::preloader_completeHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\SystemManager.as:2729]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.preloaders::Preloader/timerHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\preloaders\Preloader.as:542]
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

Обновление по запросу J_A_X ..:

Первые 7 строк файла MXML:

<?xml version="1.0" encoding="utf-8"?>
<s:Application height="100%" width="100%"
               xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               initialize="InitData();">
<fx:Script source="MyApp.as"/>

А код InitData () (с другими соответствующими строками скрипта) находится в файле MyApp.as:

import classes.RpcServerProxy;
public var SP:RpcServerProxy;

public function InitData():void {
    SP = new RpcServerProxy("http://192.168.1.102:1234");
}

1 Ответ

4 голосов
/ 07 июня 2011

Я не знаю, что такое RpcServerProxy, но он может что-то делать до того, как все будет создано. Вместо вызова функции в событии инициализации вместо этого используйте creationComplete.

Возможно, вы всегда захотите взглянуть на код в этом классе, потому что он определенно делает что-то необычное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...