ugrás a tartalomhoz

javascript - objektum iteráció

bld · 2012. Jan. 5. (Cs), 13.47
Sziasztok!

Hobbi szinten egy canvas alapú játékot fejlesztek, amiben van egy ilyen "config" fileom:
  1. function GameObjects(){  
  2.       
  3.     this.ball = {  
  4.         x : 25,  
  5.         y : 250,  
  6.         dx : 1.5,  
  7.         dy : -4,  
  8.         ballcolor : "#FFFFFF",  
  9.         imagesource : "images/ball.png"  
  10.     };  
  11.   
  12.     this.paddle = {  
  13.         paddlex : 150,  
  14.         paddleh : 10,  
  15.         paddlew : 75,  
  16.         paddlecolor : "#FFFFFF",  
  17.         imagesource : "images/paddle.png"  
  18.     };  
  19.   
  20.     this.controls = {  
  21.         leftKey : 37,  
  22.         rightKey : 39  
  23.     };  
  24.       
  25.     this.brick = {  
  26.         width : 59,  
  27.         height : 15      
  28.     };  
  29.       
  30. }  
Amit szeretnék: végigmenni az objektum tulajdonságain, és amelyik tulajdonság tartalmaz imagesource jellemzőt azt belerakni egy sima arraybe.

A problémám: a for ciklus i változója (szerintem) stringbe konvertálódik, és nem tudok hívatkozni egy jellemzőre sem pl így: "i.imagesource". Kerülő megoldással meg tudnám oldani a dolgot, de nem igazán praktikus, és nem is igazán elegáns megoldás. (Probáltam var i = new Object() -et is az eredmény ua.)
  1. function Config() {  
  2.     var gameobjects = new GameObjects();  
  3.   
  4. for (var i = 0 in gameobjects){      
  5.     console.log (i);  
  6. }     
  7.       
  8.     this.initBall = function(){         
  9.         return gameobjects.ball;  
  10.     }  
  11.       
  12.     this.initPaddle = function(){          
  13.         return gameobjects.paddle;  
  14.     }  
  15.       
  16.     this.initControls = function(){  
  17.         return gameobjects.controls;  
  18.     }  
  19.       
  20.     this.initBrick = function(){  
  21.         return gameobjects.brick  
  22.     }  
  23. }  
 
1

for..in

Poetro · 2012. Jan. 5. (Cs), 14.23
  1. for (var i in gameobjects){        
  2.   if (gameobjects.hasOwnProperty(i)) {  
  3.     console.log(gameobjects[i]);  
  4.   }  
  5. }  
2

köszi!

bld · 2012. Jan. 5. (Cs), 16.28
köszi!