2012-03-09 4 views
0

私は後で単純なif文を使って画面に表示する "良い" "悪い"配列を作成しています。プレイヤーが "良い" "悪い"オブジェクト。 次のコードを使って画面上でランダムに生成するオブジェクトを取得できません。as3エラー "良い" "悪い"配列をロードする

//良い/悪いランダムWordを作成し、設定して、私は次のエラーを取得

public function newObject(e:Event) 
    { 
     var goodObjects:Array = ["WordObject1"]; 
     var badObjects:Array = ["WordObject2"]; 
     if (Math.random() < .5) 
     { 
      var r:int = Math.floor(Math.random()*goodObjects.length); 
      var classRef:Class = getDefinitionByName(goodObjects[r]) as Class; 
      var newObject:MovieClip = new classRef(); 
      newObject.typestr = "good"; 
     } else 
     { 
      r = Math.floor(Math.random()*badObjects.length); 
      classRef = getDefinitionByName(badObjects[r]) as Class; 
      newObject = new classRef(); 
      newObject.typestr = "bad"; 
     } 
     newObject.x = Math.random(); 
     newObject.y = Math.random(); 
     addChild(newObject); 
     objects.push(newObject); 
     placeWords(); 
    } 
    // create random Word objects 
    public function placeWords() { 
     objects = new Array(); 
     for(var i:int=0;i<numWordObjects;i++) { 

      // loop forever 
      while (true) { 

       // random location 
       var x:Number = Math.floor(Math.random()*mapRect.width)+mapRect.x; 
       var y:Number = Math.floor(Math.random()*mapRect.height)+mapRect.y; 

       // check all blocks to see if it is over any 
       var isOnBlock:Boolean = false; 
       for(var j:int=0;j<blocks.length;j++) { 
        if (blocks[j].hitTestPoint(x+gamesprite.x,y+gamesprite.y)) { 
         isOnBlock = true; 
         break; 
        } 
       } 

       // not over any, so use location 
       if (!isOnBlock) { 
        newObject.x = x; 
        newObject.y = y; 
        newObject.gotoAndStop(Math.floor(Math.random()*1)+1); 
        gamesprite.addChild(newObject); 
        objects.splice(newObject); 
        break; 
       } 
      } 
     } 
    } 

オブジェクト:

1119:静的型機能を持つ参照を通じて、おそらく未定義のプロパティxのアクセスを。
1119:static型の関数を持つ参照を介して未定義のプロパティyがアクセスされる可能性があります。 1067:関数型の値を関連のない型に暗黙的に変換します。flash.display:DisplayObject

答えて

0

var xとvar yの名前を別の名前に変更してください。それらは、表示オブジェクト(Sprite/MovieClip/Shape)として拡張する任意のクラスのpublic propertiesです。

関連する問題