2012-04-03 9 views
0

Ich versuche BlazeDS in Actionscript-Projekt mit dem folgenden Code zu verbinden:kann nicht mit BlazeDS in Actionscript-Projekt verwenden RemoteObject-

ro = new RemoteObject(); 
    var cs:ChannelSet = new ChannelSet(); 
    cs.addChannel(new AMFChannel("my-amf", "http://localhost:8080/Ninja/messagebroker/amf")); 
    ro.channelSet = cs; 
    ro.destination = "test"; 
    ro.source = "me.qiankanglai.test"; 

    ro.addEventListener(ResultEvent.RESULT,r1); 
    ro.addEventListener(FaultEvent.FAULT,r2); 
    ro.sayHello(); 

Aber ich kann den Server nicht verbinden. Ich mache ein neues Flex-Projekt und das funktioniert gut. Ich benutze Chrom die Verbindung Detail zu sehen (Request Payload verschieden sind von Anfang an)

Das Actionscript-Projekt: as pro

Die Flex-Projekt:

flex pro

In der Tat, ich habe ein Fehler aus dem ActionScript-Projekt:

TypeError: Error #1034: Type Coercion failed: cannot convert [email protected] to mx.messaging.messages.ErrorMessage. 

Ich weiß es nicht Was ist der Unterschied zwischen diesen beiden Arten von remoteobject.

Antwort

0

Ich denke, dass Sie auch das Metadaten-Tag [RemoteClass] verwenden können, aber ich bin mir nicht ganz sicher, was Sie tun möchten.

+0

Hey, das habe ich schon ausprobiert, aber ich weiß nicht, warum es nicht funktioniert. Ich suchte herum und jemand sagte, dass [RemoteClass (alias = ...)] arbeitete in Flex-Projekten, aber nicht als Projekt. Tatsächlich wird dieses Metadaten-Tag in RpcClassAliasInitializer.xxx von .mxml in .as – Kanglai

+0

"übersetzt". Ja, ich weiß, dass manchmal die RemoteClass nicht zu funktionieren scheint, also müssen Sie RpcClassAliasInitializer.registerClassAliases(); Ich hatte einige Probleme, aber es war mit der Java-Klassenhierarchie verwandt, die ich verwendete. – nMoncho

+0

Dieses Problem hat mich für zwei Tage gestört, weil ich einen Fehler für den Typ bekommen habe. :( – Kanglai