簡體   English   中英

在AS3中顯示行

[英]display lines in AS3

我對此功能感到困惑,該函數在此之前分別使用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'
    }

假設您已聲明private var lns = []; 在某處繪制一條藍線(從給定位置開始向下垂直20px)。

它什么都不顯示

這意味着您在舞台上可能沒有該類的對象。 在您的文檔類中,應該使用addChild來顯示包含mLine的類的實例。 顯然需要以某種方式調用mLine。 您可以在類的構造函數中執行此操作,但是您需要刪除最后一個trace語句,以避免出現空指針錯誤,因為那時stage將為null

編輯:錯過了您說它在Document類中。 因此,請嘗試查看是否可以進行其他繪制。 這個功能似乎沒有問題。

您的代碼似乎應該可以工作。 我重寫了它,使其更好地符合ActionScript 3最佳實踐

private function drawLine(xVal:int, yVal:int):void 
{
    var lineColor:uint = 0x0000FF;

    var lineShape:Shape = new Shape();
    //lineShape.name = String(Math.round((Math.random() * 20) + 8));
    lineShape.graphics.lineStyle(10, lineColor);
    lineShape.graphics.moveTo(xVal, yVal);
    lineShape.graphics.lineTo(xVal, yVal + 20);
    addChild(lineShape);
    lines.push(lineShape);
}

形狀的x和y屬性都將為零,因為您從未設置它們。 您只是在xVal和yVal的形狀內繪制線。 您可以這樣做:

private function mLine(xVal:int, yVal:int) 
{
    var lineColor:uint = 0x0000FF;

    var lineShape:Shape = new Shape();
    //lineShape.name = String(Math.round((Math.random() * 20) + 8));
    lineShape.graphics.lineStyle(10, lineColor);
    lineShape.graphics.moveTo(0, 0);
    lineShape.graphics.lineTo(0, 20);
    lineShape.x = xVal;
    lineShape.y = yVal;
    addChild(lineShape);
    lines.push(lineShape);
}

不知道為什么它根本不為您顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM