今天同事帮我弄了几个小时解决了一个错误,这个错误是:
ReferenceError: Error #1065: 变量 ArrayOfHstSmmsNaInfo 未定义。
at global/flash.utils::getDefinitionByName()
at mx.rpc.xml::SchemaTypeRegistry/getCollectionClass()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\xml\SchemaTypeRegistry.as:112]
at mx.rpc.xml::XMLDecoder/createContent()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\xml\XMLDecoder.as:1890]
at mx.rpc.xml::XMLDecoder/decode()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\xml\XMLDecoder.as:161]
at mx.rpc.soap::SOAPDecoder/decodeBody()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\soap\SOAPDecoder.as:452]
at mx.rpc.soap::SOAPDecoder/decodeEnvelope()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\soap\SOAPDecoder.as:304]
at mx.rpc.soap::SOAPDecoder/decodeResponse()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\soap\SOAPDecoder.as:236]
at generated.webservices.applicationProc.letter::BaseILetterService/processResult()[E:\workspaces\SMMS\src\generated\webservices\applicationProc\letter\BaseILetterService.as:802]
at mx.rpc::AsyncResponder/result()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncResponder.as:84]
at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74]
at DirectHTTPMessageResponder/completeHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:403]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
解决办法 ArrayOfHstSmmsNaInfo 没定义,就在加载的时候顶一下。
如:
/**
* 下面的定义虽然没有用,但是在这里不能删,这些类在这里定义。
* 如果不定义,则会报:ReferenceError: Error #1065: 变量 XXX 未定义。
* 这些IPurchaseServuice 是 flex反编译java的webservice生成的
*/
private var purchase:IPurchaseService; //买
private var user:HstSmmsUserService;
private var sale:ISaleService; //卖
private var userGroup:HstSmmsUserGroupService1;
private var iLetterService:ILetterService;
private var iGenerateMenuServices:IGenerateMenuServices; //菜单
像这类错误,好像就是: 一个Application 他popup一个module1 ,然后 module1在pupup一个module2,然后module2就引用一个类时,这个类就必须在Applicatin声明,或者在module2里面注册这个类。