首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex非常奇怪的造型错误

Flex非常奇怪的造型错误
EN

Stack Overflow用户
提问于 2016-10-25 19:30:51
回答 1查看 107关注 0票数 0

在我的基于Flex3.6的web应用(使用BlazeDS)上,我会被一个error non error弄得发疯。我试着描述我的问题:我有一个java类:

代码语言:javascript
复制
public class User {...}

和.as中的绑定:

代码语言:javascript
复制
[Bindable]
[RemoteClass(alias="it.dto.User")]
public class User {...}

我也有一个DataManager.as来执行异步调用,如下所示:

代码语言:javascript
复制
public function getUser():void {
    var token:AsyncToken = _service.getUser();
    token.addResponder(new AsyncResponder(userOnResult,userOnFault));
}
private function userOnFault(event:FaultEvent,token:Object):void {
    var _fail:String = "Error";
}
private function socOnResult(event:ResultEvent,token:Object):void {
    _resUser = event.result as ArrayCollection;
    dispatchEvent(new MyEvent("USER_EVENT",_resUser));
}

现在,我在引用两个不同.mxml的两个不同的.as文件(不同的包)中实现了以下代码:

代码语言:javascript
复制
var data:DataManager = new DataManager;
....
data.addEventListener("USER_EVENT",userResult);
....
data.getUser();
....
private function userResult(dataEvent:MyEvent):void {
    var user:ArrayCollection = new ArrayCollection;
    user = dataEvent.result as ArrayCollection;
    for (var i:int = 0;i<user.length; i++) {
        var u:User = new User;
        u = (User)(user.getItemAt(i));
    }
    _dm.removeEventListener("USER_EVENT",userResult);
}

戏剧性的是,在第一个.as中,它工作得很好,而在第二个.as中,给我一个强制失败的错误。在第二个文件中,它似乎无法识别User类。你有什么想法吗?我要发疯了!谢谢

@Stacktrace错误:

代码语言:javascript
复制
TypeError: Error #1034: Type Coercion failed: cannot convert   appcode.dto::SocietaDTO@b4dbfc1 to appcode.dto.SocietaDTO.
at modules::ReportIspezioni/onSocResult()[D:\workspace\maga\aga\flex_src\modules\ReportIspezioni_src.as:80]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at appcode.dao::DataManager/socOnResult()[D:\workspace\maga\aga\flex_src\appcode\dao\DataManager.as:180]
at mx.rpc::AsyncResponder/result()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AsyncResponder.as:82]
at mx.rpc::AsyncToken/http://www.adobe.com/2006/flex/mx/internal::applyResult()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AsyncToken.as:199]
at mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\events\ResultEvent.as:172]
at mx.rpc::AbstractOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AbstractOperation.as:199]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:263]
at mx.rpc::Responder/result()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\Responder.as:46]
at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74]
at NetConnectionMessageResponder/resultHandler()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:524]
at mx.messaging::MessageResponder/result()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\messaging\MessageResponder.as:199]

显然,上面写的User类只是为了理解代码逻辑。真正的类是一个调用SocietaDTO的DTO。注意:代码在我的项目的另一个模块中工作得很好。我不明白为什么在这里它不能工作。

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2016-11-07 23:58:10

在开发时,我从不保存浏览器缓存。无论如何,我通过添加以下内容来解决这个问题:

代码语言:javascript
复制
registerClassAlias("it.mec.dto.SocietaDTO", SocietaDTO);

在类中被异常启动。

不管怎样,谢谢你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40238808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档