1

この関数は、xVal と yVal のパラメーター 22 と 58 でそれぞれ呼び出されます。swf をコンパイルしてテストしても何も表示されず、エラーもありません。コードはドキュメント クラスにあります。

    private function mLine(xVal : int, yVal : int) {
        var rCol = 0x0000FF;
        var incr = Math.round((Math.random() * 20) + 8);
        lns.push(new Shape());
        var i = lns.length - 1;

        this.addChild(lns[i]);
        lns[i].graphics.moveTo(xVal, yVal);
        lns[i].graphics.lineStyle(10, rCol);
        lns[i].graphics.lineTo(xVal, yVal + 20);
        lns[i].name = incr;
        trace("lns[" + i + "] x is " + lns[i].x); // outputs 'lns[0] x is 0'
        trace("xVal is " + xVal); // outputs 'xVal is 22'
        trace("yVal is " + yVal); //outputs 'yVal is 58'
        trace(stage.contains(lns[i])); // outputs 'true'
    }
4

2 に答える 2

1

どこかで宣言していると仮定するとprivate var lns = [];、青い線 (指定された位置から 20px 真下) が描画されます。

何も表示されません

つまり、ステージ上にそのクラスのオブジェクトがない可能性があります。ドキュメント クラスでは、addChildを含むクラスのインスタンスを表示するために使用する必要がありますmLine。mLine は明らかに何らかの方法で呼び出す必要があります。クラスのコンストラクターでこれを行うこともできますが、null ポインター エラーを回避するには、最後の trace ステートメントを削除する必要がありstageますnull

編集: Document クラスにあると言ったのを見逃しました。それで、何か他のものを描くことができるかどうか試してみてください. この機能に問題はないようです。

于 2011-09-22T08:59:18.333 に答える