2014-01-13 15 views
0

我正在嘗試創建一個多維數據集循環並將ColorMaterial應用於表面。主要的actionscript類具有以下用於創建循環的方法。有一個名爲Building的外部類文件,它負責形狀和ColorMaterial。不幸的是,我似乎做錯了什麼。 Flash Builder不顯示任何警告或錯誤。但是當我進行測試時,我所得到的只是黑屏。循環立方體和添加材料(Away3D)

 private function buildCity():void 
    { 
     var citySize:int = 1800; 
     var buildingSize:int = 100; 
     var roadSize:int = 50; 
     // Loop across in the x direction and again in the z direction 

     for(var cityX:int=citySize/2;cityX<citySize/2;cityX+=buildingSize+roadSize) 
     { 
      for(var cityZ:int=citySize/2;cityZ<citySize/2;cityZ+=buildingSize+roadSize) 
      { 
       // Create buildings 
       var building:Building = new Building(); 

       // Position it 
       building.x = cityX; 
       building.z = cityZ; 

       // Add to the scene 
       view.scene.addChild(building); 
      } 
     } 
    }  

的建築類負責形狀和材料

package 
{ 
import away3d.entities.Mesh; 
import away3d.materials.ColorMaterial; 
import away3d.primitives.CubeGeometry; 


public class Building extends Mesh 
{ 
    public function Building() 
    { 
     super(new CubeGeometry(50,100,50)); 
     // Make a material 
     material = new ColorMaterial(Math.random()*0xFFFFFF); 
     // Offset the y position based on height 
     y = 50; 
    } 
} 
} 

回答

0

檢查迴路參數。例如,在上面的代碼中,您將cityX設置爲citySize/2,然後讓它迭代,同時cityX < citySize/2

由於cityX >= citySize/2從一開始就不會執行循環。

內循環也是如此。

+0

我試過你的建議,但它沒有改變任何東西。我甚至爲citySize/2添加了一個負號,但結果仍然相同。 – user2461697

+0

@ user2461697 - 您能否確認循環正在運行?嘗試記錄每個建築物的位置。如果正在添加建築物,那麼您可能需要確保相機實際上正在朝向正確的方向等。 –