2015-11-03 1 views
0

Я работаю с ActionScript3.0 на базовом движке. Когда я пытаюсь проверить мой код, я получаю эту ошибку:Синтаксис Ошибка: ожидающий правого перед двоеточием

MovementClass.as, Line 44, Column 22 1084: Syntax error: expecting rightparen before colon. 

я получаю это для линий 44, 52, 60 и 68 следующего кода; это строки, считывающие heroGoing < направление> (e: TimerEvent);

package { 
import flash.display.*; 
import flash.display.MovieClip; 
import flash.events.Event; 
import flash.events.KeyboardEvent; 
import flash.ui.Keyboard; 
import flash.utils.Timer; 
import flash.events.TimerEvent; 
import flash.events.TimerEvent; 


public class MovementClass extends MovieClip { 
    var reference:Reference = new Reference(); 
    var hero:Hero = new Hero(); 
    var enemy:Enemy = new Enemy(); 
    var wall:Wall = new Wall(); 

    //Timer 
    var moveTimer:Timer = new Timer(25, 10) 

    //Booleans 
    var movingHeroRight:Boolean = false; 
    var movingHeroLeft:Boolean = false; 
    var movingHeroUp:Boolean = false; 
    var movingHeroDown:Boolean = false; 

    public function MovementClass() { 
     hero.x = stage.stageWidth * .5; 
     hero.y = stage.stageHeight * .5; 
     addChild(hero); 
     startEngine(); 
    } 

    public function startEngine():void { 
     stage.addEventListener(KeyboardEvent.KEY_DOWN, movementHandler); 
     stage.addEventListener(KeyboardEvent.KEY_UP, stopHandler); 
    } 

    public function movementHandler(keyDown:KeyboardEvent):void { 
     if (keyDown.keyCode == 39) { 
      if (movingHeroLeft == true, movingHeroUp == true, movingHeroDown == true) { 
       return; 
      } else { 
       heroGoingRight(e:TimerEvent); 
       movingHeroRight = true; 
       moveTimer.start; 
      } 
     } else if (keyDown.keyCode == 37) { 
      if (movingHeroRight == true, movingHeroUp == true, movingHeroDown == true) { 
       return; 
      } else { 
       heroGoingLeft(e:TimerEvent); 
       movingHeroLeft = true; 
       moveTimer.start; 
      } 
     } else if (keyDown.keyCode == 38) { 
      if (movingHeroLeft == true, movingHeroRight == true, movingHeroDown == true) { 
       return; 
      } else { 
       heroGoingUp(e:TimerEvent); 
       movingHeroUp = true; 
       moveTimer.start; 
      } 
     } else if (keyDown.keyCode == 40) { 
      if (movingHeroLeft == true, movingHeroUp == true, movingHeroRight == true) { 
       return; 
      } else { 
       heroGoingDown(e:TimerEvent); 
       movingHeroDown = true; 
       moveTimer.start; 
      } 
     } 
     //moveTimer.start(); 
    } 

    function heroGoingUp(eUp:TimerEvent):void { 
     if (movingHeroUp == true) { 
      reference.y += 5; 
     } 
    } 

    function heroGoingDown(eDown:TimerEvent):void { 
     if (movingHeroDown == true) { 
      reference.y -= 5; 
     } 
    } 

    function heroGoingLeft(eLeft:TimerEvent):void { 
     if (movingHeroLeft == true) { 
      reference.x += 5; 
     } 
    } 

    function heroGoingRight(eRight:TimerEvent):void { 
     if (movingHeroRight == true) { 
      reference.x -= 5; 
     } 
    } 

    public function stopHandler(keyUp:KeyboardEvent):void { 
     if (movingHeroRight == true) { 
      movingHeroRight = false; 
     } else if (movingHeroLeft == true) { 
      movingHeroLeft = false; 
     } else if (movingHeroUp == true) { 
      movingHeroUp = false; 
     } else if (movingHeroDown == true) { 
      movingHeroDown = false; 
     } 
    } 
} 
} 

Что я делаю неправильно?

+0

Было бы неплохо, если бы вы добавили номера строк в код. – agabrys

+1

Еще лучше, пометьте свою публикацию на языке, который вы используете. Будьте конкретны, если важна версия выпуска (например, python2, а не только python). – Prune

+0

Улучшено форматирование кода и сообщений. Сделал небольшие изменения в формулировках. Добавлен тег C++ – Prune

ответ

1

Проблема с первым heroMoving вызова:

  heroGoingRight(e:TimerEvent); 

компилятор думает, что вы пытаетесь объявить переменную на месте. Объявите e: TimerEvent надлежащим образом, до вы используете его, и все должно быть в порядке.