0

私はクラスのために小さなプロジェクトをやろうとしていますが、それを行う方法は長い道のりを知っていますが、より直感的な方法で行うことを好むので、基本的に同じコード。アイデアは、クラスオブジェクトのインスタンスを独自の一意の名前で作成し、その位置/サイズ/などを設定し、その子をステージに追加する関数を持つことです。これ(私が今持っているもの)を見ると、少し役立つかもしれません。

//Set up variables for all deco pieces
var decoGreen:GreenBall;
var decoRed:RedBall;
var decoStar:Star;
var decoFlower:Flower1;
var decoYellow:YellowBall;
var decoBlue:BlueBall;

//Functions to allow easier object placement
function makeDeco(posX:Number, posY:Number, decoName:String, rootClass:Object):void
{
    decoName = new (rootClass)();
    decoName.x = posX;
    decoName.y = posY;
    addChild((decoName));

}
makeDeco(90,320,"greenBall",GreenBall)

明らかに、このコードは機能せず、今はかなりラフですが、ここで達成しようとしていることを理解するには十分だと思います。私の混乱を解読しようとするすべての人に感謝します! :D

4

1 に答える 1

0

あなたは私が言えることからかなり近いです。あなたの質問を理解できれば、単にgetDefinitionByNameクラスを使用するだけです

function makeDeco(posX:Number, posY:Number, decoName:String):void
{
    var DecoClass:Class = getDefinitionByName(decoName) as Class;
    var deco:DisplayObject = new DecoClass();
    deco.x = posX;
    deco.y = posY;
    addChild((deco));
}
makeDeco(90,320,"greenBall")

ライブラリですべて「アクションスクリプトとしてエクスポート」に設定されている場合は、変数を最初に定義する必要はありません。たとえば、「greenBall」という文字列を呼び出すと、ライブラリに次のクラス名を持つムービー クリップがあることを意味します。greenBall

于 2013-10-07T21:25:24.623 に答える