2014-04-02 39 views
0

我正在嘗試創建一個正方形陣列,然後將它們添加到舞臺上的6x12網格中,之後可以更改顏色。我已經設法創建了一個數組數組並存儲了這些方塊,但是我現在不知道如何將它們添加到網格中的舞臺上。我是一名新程序員,所以如果我沒有正確格式化我的代碼,我會提前道歉。感謝您的時間。如何將陣列中的形狀添加到舞臺動作腳本3

公共類主要擴展Sprite {

public function Main():void 
    { 
     stage.scaleMode = StageScaleMode.NO_SCALE; 
     stage.align = StageAlign.TOP_LEFT; 
     stage.addEventListener(Event.DEACTIVATE, deactivate); 

     // touch or gesture? 
     Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

     //array of arrays 
     var pixelArray:Array = [row1, row2, row3, row4, row5, row6, row7, row8, row9, row10, row11, row12] 

     // Row arrays 
     var row1:Array = []; 
     var row2:Array = []; 
     var row3:Array = []; 
     var row4:Array = []; 
     var row5:Array = []; 
     var row6:Array = []; 
     var row7:Array = []; 
     var row8:Array = []; 
     var row9:Array = []; 
     var row10:Array = []; 
     var row11:Array = []; 
     var row12:Array = []; 

     for (var i:int = 0; i < 6; i++) 
     { 

      // "Pixel" 
      var pixel:Shape = new Shape; // initializing the variable 
      pixel.graphics.lineStyle(1, 0x000000, 1); 
      pixel.graphics.beginFill(0xFF0000); // fill colour 
      pixel.graphics.drawRect(0, 0, 30, 30); // (x spacing, y spacing, width, height) 
      pixel.graphics.endFill(); // end of fill 
      //addChild(pixel); // adds to stage, all shapes will be in same place? 

      row1.push(pixel); 
      row2.push(pixel); 
      row3.push(pixel); 
      row4.push(pixel); 
      row5.push(pixel); 
      row6.push(pixel); 
      row7.push(pixel); 
      row8.push(pixel); 
      row9.push(pixel); 
      row10.push(pixel); 
      row11.push(pixel); 
      row12.push(pixel); 


     } 
     addChild(pixelArray [1][1]); //tried to add just one square to stage, I think syntax is wrong here 

    } 

    private function deactivate(e:Event):void 
    { 
     // make sure the app behaves well (or exits) when in background 
     //NativeApplication.nativeApplication.exit(); 
    } 

} 

}

回答

0

你把同一個pixel到每一行。要製作更多像素,您需要爲每列每行創建一個像素。要避免複製粘貼,您可以創建一個函數,返回一個現成的Shape對象,並且您將在所有rowX.push()聲明中調用該對象。像這樣:

function makePixel(fillColor:int=0xff0000):Shape { 
    var pixel:Shape=new Shape(); 
    pixel.graphics.lineStyle(1, 0x000000, 1); 
    pixel.graphics.beginFill(fillColor); // fill colour 
    pixel.graphics.drawRect(0, 0, 30, 30); // (x spacing, y spacing, width, height) 
    pixel.graphics.endFill(); // end of fill 
    return pixel; 
} 
row1.push(makePixel()); 
row2.push(makePixel()); 
// etc 
相關問題