是什么导致flash/actionscript运行时错误"WatcherSetupUtil未定义"?

Rus*_*uss 6 apache-flex flash actionscript

我有一个flex应用程序("MyApp")我正在处理我看到一些非常奇怪和不一致的错误.我有时会在应用程序启动时看到的错误之一是

"Variable _MyAppWatcherSetupUtil is not defined."
Run Code Online (Sandbox Code Playgroud)

完整的错误输出位于问题的底部.

是什么让这个错误特别奇怪的是我在做项目构建后立即得到它(即:多次运行swf并且总是发生),并且我唯一需要做的就是让错误消失(我赢了)不要说"修复它")是再次建造项目.

有谁知道这个错误是什么?到目前为止我能收集到的最好的是它可能与某种方式绑定变量有关(这是WatcherUtil似乎暗示的),但我不明白为什么它会在构建之间不一致.


使用flex_sdk_4.5.0.20967中的mxmlc进行编译.

发生的最新版本的完整错误输出:

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的请求更新..:

MXML文件的前7行是:

<?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"/>
Run Code Online (Sandbox Code Playgroud)

InitData()代码(带有其他相关脚本行)位于MyApp.as文件中:

import classes.RpcServerProxy;
public var SP:RpcServerProxy;

public function InitData():void {
    SP = new RpcServerProxy("http://192.168.1.102:1234");
}
Run Code Online (Sandbox Code Playgroud)

J_A*_*A_X 4

我不知道RpcServerProxy是什么,但它可能在实例化所有内容之前执行某些操作。不要在初始化事件中调用该函数,而是使用creationComplete。

您可能总是想查看该类中的代码,因为它肯定在做一些奇怪的事情。