Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash游戏创建分数动态文本字段(AS3)_Flash - Fatal编程技术网

Flash游戏创建分数动态文本字段(AS3)

Flash游戏创建分数动态文本字段(AS3),flash,Flash,创建一个类似吃豆人的游戏,玩家在游戏中吃东西。当一个电影剪辑(盒子)在舞台上吃掉一个圆圈时,动态文本字段中的分数应该上升10分 接收到错误: 行:`scoreField.text=”“+字符串(currentScore) 错误消息:调用可能未定义的方法字符串 package { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import fl

创建一个类似吃豆人的游戏,玩家在游戏中吃东西。当一个电影剪辑(盒子)在舞台上吃掉一个圆圈时,动态文本字段中的分数应该上升10分

接收到错误: 行:`scoreField.text=”“+字符串(currentScore)

错误消息:调用可能未定义的方法字符串

 package {
   import flash.display.Sprite;
   import flash.display.MovieClip;
   import flash.events.Event;
   import flash.events.KeyboardEvent;
   import flash.ui.Keyboard;

   public class Move extends MovieClip {

   //var ScoreObjects:Array = new Array(); // creates ScoreObjects array
      var circle:MovieClip;


      private var keyRight:Boolean=false;
      private var keyLeft:Boolean=false;
      private var keyForward:Boolean=false;
      private var keyBackward:Boolean=false;
      private var forwardMove:int=0;
      private var sideMove:int=0;

      private var inertia:int=8; //amount of friction

   //var score_field:String;
   //var point:MovieClip;
   //private var playerScore:int;

   var currentScore:int;


 // Constructor--------------------------------------------------------------------
      public function Move() {
         init();
      }

 // function init -----------------------------------------------------------------
   function init():void {

         //stage.frameRate=60;
    //var score_field:String="";

  /*ScoreObjects[0] = new Circle();
  ScoreObjects[0].amount = 1; // amount of point -- not sure
  ScoreObjects[0].name = "circle";*/
  circle.amount = 10; // each circle is worth 10 points

  //var playerScore:int = 0;
  var currentScore:int = 0;

         stage.addEventListener(Event.ENTER_FRAME, frameloop);
         stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownEvent);
         stage.addEventListener(KeyboardEvent.KEY_UP, keyUpEvent);

    box.addEventListener(Event.ENTER_FRAME, eatCircle);
    wall.addEventListener(Event.ENTER_FRAME, hitWall);



    //stage.addChild(ScoreObjects[0]); // add Score Objects to stage ------------------------------
    //trace(ScoreObjects[0]);

    /*ScoreObjects[0].x = 105;
    ScoreObjects[0].y = 233;*/

      }

 // function eatCircle --------------------------------------------------------------
 function eatCircle(event:Event):void {

  if (box.hitTestObject(circle)) {
    trace ("I ate the circle");
    stage.removeChild(circle);
    var newPoint:int;
    newPoint = circle.amount;
    // point = ScoreObjects[0].amount //store property's value of amount in variable...?
    calcPoints(newPoint);
    //box.deleteEventListener(Event.ENTER_FRAME, eatCircle)
    //calcScore();
    //playerScore++;
   } else {
    trace ("I didn't eat the circle");
   }
 }

 function calcPoints(newPoint:int):void {
  currentScore += newPoint;
  updateDisplayScore(currentScore); 
 }

 function updateDisplayScore(currentScore:int) {
   scoreField.text = " " + String(currentScore);
   var displayText:String="";   
  displayText = scoreField.text; // assigning the message to the field*/
 }



 // function hitWall --------------------------------------------------------------
 function hitWall(event:Event):void {
  if (box.hitTestObject(wall)) {
    box.y+=6;
   } else if (box.hitTestObject(wall2)) {
    box.y-=6;

   } else if (box.hitTestObject(wall3)) { 
    box.x+=6;

   } else if (box.hitTestObject(wall4)) {
    box.x-=6;
      }

 }

 // function keyDownEvent ------------------------------------------------------------
     function keyDownEvent(event:KeyboardEvent):void {
         switch (event.keyCode) {
            case Keyboard.UP:
               keyForward = true;
               keyBackward = false;
               break;

            case Keyboard.DOWN:
               keyBackward = true;
               keyForward = false;
               break;

            case Keyboard.LEFT:
               keyLeft = true;
               keyRight = false;
               break;

            case Keyboard.RIGHT:
               keyRight = true;
               keyLeft = false;
               break;
         }
      }

 // function keyUpEvent ------------------------------------------------------------
     function keyUpEvent(event:KeyboardEvent):void {
         switch (event.keyCode) {

            case Keyboard.UP:
               keyForward = false;
               break;

            case Keyboard.DOWN:
               keyBackward = false;
               break;

            case Keyboard.LEFT:
               keyLeft = false;
               break;

            case Keyboard.RIGHT:
               keyRight = false;
               break;
         }
      }

 // function frameloop ------------------------------------------------------------
     function frameloop(event:Event):void {

         //amount of force
         if (keyForward) {
            forwardMove -=2;
         }
         if (keyBackward) {
            forwardMove += 2;
         }
         if (keyLeft) {
            sideMove -= 2;
         }
         if (keyRight) {
            sideMove += 2;
         }

         forwardMove +=(0-forwardMove)/inertia;
         sideMove +=(0-sideMove)/inertia;

         box.y+=forwardMove;
         box.x+=sideMove;

   //point = e.currentTarget.amount;


      } 

   }// end of class
}// end of package
应该是

scoreField.text = " " + String(currentScore);
将工作,你也可以使用

scoreField.text = " " + currentScore.toString();

对不起,我不确定我的问题帖子是怎么回事。我一直在试图发布代码,但它没有出现。啊!谢谢你抓住了!这肯定需要解决。现在我收到一个新错误:无法访问空对象引用的属性或方法。在Move/init()在Move()不确定我是否应该把这个问题作为一个新问题来发布…对不起,我对这里有点陌生拼写错误真的很痛苦!至于新问题,是的,作为新问题提问会更好,因为它不是相同的错误。但我很确定您会收到错误,因为您没有将函数声明为
public
scoreField.text = "" + String(currentScore);
scoreField.text = " " + currentScore.toString();