1

ライブラリのムービークリップをステージ上のムービークリップに追加したいです。

function setMc(con:Sprite,mc:Sprite):void
{
    con.addChild(mc)
    mc.x=mc.width/2
    mc.y=mc.height/2
}        

setMc(myholder,mylibrarymc)

次のエラーが表示されます。

TypeError: エラー #1034: 型強制に失敗しました

何を変更する必要がありますか?

4

3 に答える 3

3

ライブラリにはプロトタイプのみが含まれ、実際のオブジェクトは含まれません。「mylibrarymc」はライブラリの MC タイプの名前だと思います。この場合、「mylibrarymc」はクラス タイプであり、使用方法が異なります。

function setMc(con:Sprite,mc:Class):void
{
    var newMC:DisplayObject=new mc() as DisplayObject;
    // Here you actually make an object out of a class
    con.addChild(newMC);
    newMC.x=newMC.width/2;
    newMC.y=newMC.height/2;
}        

setMc(myholder,mylibrarymc);

お役に立てれば。ライブラリに手を出すのはかなり久しぶりです。

于 2012-09-04T13:11:19.980 に答える
1

あなたの関数は Sprite を期待しており、おそらく MovieClip を渡しています。ライブラリの mc を右クリックしたときに表示される「actionscript のエクスポート」オプションを見てください。

于 2012-09-04T13:09:41.847 に答える
0

ライブラリ内のオブジェクトを右クリックし、[プロパティ] に移動します。「ActionScript 用にエクスポート」というラベルの付いたボックスがチェックされていることを確認し、適切な名前を割り当てます。シンボルに付けるクラス名は、コード自体でそのタイプのオブジェクトを作成するために使用するものです。たとえば、次のようになります。

クラス名「Player」で ActionScript のシンボルをエクスポートします。

ActionScript ファイルで:

var player = new Player();
addChild(player);

任意の MovieClip メンバー関数 (位置、アルファ) を使用してオブジェクトを操作し、イベント リスナーを割り当ててインタラクティブにすることができます。

于 2012-09-04T13:11:52.973 に答える