2014-09-28 3 views
0

Я получил ошибку 1136: неправильный huber аргументов. Ожидаемый 1. On Frame 1 Line 12 + 13.Flash CS6 AS3 Ошибка 1136

Я не могу найти с ним ничего плохого, но я большой noob в AS3, поэтому, пожалуйста, будьте простыми с повторами.

Вот мой код:

stop() 

var leftDown:Boolean = false; 
var rightDown:Boolean = false; 

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); 
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased); 
addEventListener(Event.ENTER_FRAME, gameLoop); 

function gameLoop(event:Event):void{ 
    moveCharacter(); 
    keyPressed();  //error here 
    keyReleased(); //error here 
    gravity(); 
} 
    function gravity() 
{ 
    if (character.y < (stage.stageHeight - character.height)){ 
     if (testfloor.hitTestPoint (character.x, character.y, true)) 
     character.y += 5;       
    } 
} 

function moveCharacter 
(){ 
    if (leftDown) 
    { 
     wall.x += 4; 
    } 
    if (rightDown) 
    { 
     wall.x -= 4; 

    } 
} 

function keyPressed (event:KeyboardEvent) 
{ 
    switch (event.keyCode) 
    { 
     case Keyboard.LEFT: 
     { 
      leftDown = true; 
      break; 
     } 
     case Keyboard.RIGHT: 
     { 
      rightDown = true; 
      break; 
     } 
    } 
} 

function keyReleased (event:KeyboardEvent) 
{ 
    switch (event.keyCode) 
    { 
     case Keyboard.LEFT: 
     { 
      leftDown = false; 
      break; 
     } 
     case Keyboard.RIGHT: 
     { 
      rightDown = false; 
      break; 
     } 
    } 
} 

Еще раз удачи и лучшие пожелания, найдя эту неприятную ошибку.

ответ

0

ошибка 1136: неправильное количество аргументов. Ожидаемые 1

Это должно быть очевидно. Вы вызываете функцию, которая определяется одним аргументом:

function keyPressed (event:KeyboardEvent) 

Вы вызываете его с вне передавая любые аргументы ему:

keyPressed(); 

Вот почему он жалуется! То же самое для keyReleased.

Так в основном либо передать его KeyboardEvent, как вы определили, или не вызывать эту функцию на всех. Ваш объект-слушатель все равно позаботится об этом. :)

+0

Я сделал это, но теперь я получаю сообщение об ошибке 1120 в строке 39: Доступ к событию неопределенной собственности – user3406023

+0

Если вы по-прежнему действительно хотите передать свое собственное событие, вам сначала нужно его создать. 'var e: KeyboardEvent = new KeyboardEvent ('e');', а затем передать его как аргумент вашей функции 'keyPressed (e);' – Iggy

Смежные вопросы