問題 

同一 Flex プロジェクト内にて、すでに参照された Remote クラスをもう一度参照する事はできません。

 サンプル

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
        <mx:Script>
        <![CDATA[
            import jp.co.adobe.A;
            import jp.co.adobe.B;
.....
package jp.co.adobe
{
    [Bindable]
    [RemoteClass(alias="jp.co.adobe.A")]
    
    public class A
    {
            .....
    }
        .....
}
package jp.co.adobe
{
    [Bindable]
    [RemoteClass(alias="jp.co.adobe.A")]
    
    public class B
    {
            .....
    }
        .....
}

上記のクラス A も B も同じ jp.co.adobe.A を参照しています。この場合、実行時に下記のエラーが出力されます。

[RPC Fault faultString="Cannot invoke method 'xxxxx'." 
faultCode="Server.ResourceUnavailable" 
faultDetail="The expected argument types are (jp.co.adobe.A) 
but the supplied types were (flex.messaging.io.amf.ASObject) and converted to (null)."] 

Flash Player 10.0.42.34 より前のバージョンではこのエラーは出力されません。 Flash Player 10.0.42.34 及びそれ以降のバージョンで出力されるように変更されております。

解決方法 

一度参照された Remote クラスを再び参照する事はできません。同じ Remote クラスを参照する必要がある場合は、同じ内容の Remote クラスを別の名前で作成し、参照先を変更してください。

追加情報 

Flex SDK 3.3 及びそれ以降のバージョンから、この問題を未然に防ぐ為に、コンパイル時に下記のエラーが出力されるように変更されております。

A mapping for 'xxxxx' to the remote class alias 'xxxxx' 
was found while processing class 'xxxxx'. Flex now generates code 
to check if an alias has already been registered. 
When deserializing remote data an alias can only map to a single class.

Flex SDK 3.3 より前のバージョンではコンパイル時に上記のエラーは出力されません。(コンパイル時の修正の詳細はこちらをご覧ください)

[English: cpsid_82875]

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー