ReferenceError: Error #1065

本文解决了一个在Flex应用中遇到的错误:变量未定义导致的ReferenceError。通过在模块间正确注册和使用类,避免了该类引用错误。文章提供了具体的代码示例和解决策略。

 

今天同事帮我弄了几个小时解决了一个错误,这个错误是:

 

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里面注册这个类。

### 解析 `Uncaught ReferenceError: errorHandler is not defined` 错误 当遇到 `ueditor.all.js:24557 Uncaught ReferenceError: errorHandler is not defined` 这样的错误提示时,表明在执行过程中尝试访问未定义的变量 `errorHandler`[^1]。 #### 原因分析 该问题通常源于配置文件中的不兼容设置或语法错误。具体来说: - **注释符号使用不当**:如果在 `config.json` 文件中使用了 JavaScript 风格的单行注释符号 `//` 来标记注释,则可能导致解析失败并引发此类异常[^3]。 - **环境差异引起的问题**:从开发环境迁移到生产环境中可能出现路径、依赖加载顺序等问题,进而影响脚本正常运行[^4]。 #### 解决方案 针对上述原因,可以采取如下措施来修复此问题: 1. **移除非法字符** 修改 `config.json` 中所有的 `//` 注释形式为 JSON 支持的标准方式——即通过包裹对象属性值的方式实现注释效果,或者直接删除不必要的注释语句。 ```json { "serverUrl": "/php/controller.php", /* 替换掉原来的 // */ ... } ``` 2. **确认资源正确加载** 确认所有必要的外部库和插件都已成功加载,并且其版本号匹配当前使用的 UEditor 版本。特别是要检查是否有遗漏引入某些必需模块的情况存在。 3. **自定义全局处理函数** 如果确实需要定义一个名为 `errorHandler` 的回调用于捕获潜在异常,可以在初始化编辑器之前显式声明它[^2]: ```javascript window.errorHandler = function(msg){ console.log('Custom error handler:', msg); }; var editor = UE.getEditor('container'); ``` 以上方法能够有效解决由于缺少 `errorHandler` 定义所造成的运行时错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值