2011-10-30 7 views
0

を失敗した。これにタイプの強制は、私が何か持って

var a:A = obtainAInstance(); 
var b:B = B(a); 

を、私は次のエラーを取得する:

TypeError: Error #1034: Type Coercion failed: cannot convert A to B.

この原因は何か?

答えて

3

あなたaオブジェクトがAインスタンスですが、Aは、親クラスではなく、Bているので、それはBインスタンスにすることはできません。したがって、そのようなキャストを実行することはできません。あなたの関数がBインスタンスを返す場合、あなたが戻っBからaをキャストすることができ

、およびアクセスそのすべてのBメンバー、オブジェクトが実際にBあるので:

var a:A = obtainBInstance(); 
var b:B = B(a); 
0

var b:B = a as B;

を試してみてください
 var o:Object = new Object(); 
     var ed:EventDispatcher = o as EventDispatcher;//this works 
     //var ed:EventDispatcher = EventDispatcher(o); //this causes an error 

しかし、そのようなBインスタンスで問題が発生する可能性があります。- A

+0

'ed'はnullになります。それはエラーよりもはるかに有用ではありません。 – BoltClock

関連する問題