AS3, ошибка скроллера # 1137 - PullRequest
0 голосов
/ 20 июля 2010

Это скроллер AS3, который я пытался конвертировать из AS2.

Я благодарен за помощь, но я все еще получаю «#error 1137 неправильное количество аргументов».Как мне заставить этот скроллер работать?
Спасибо,

//SCROLLING GALLERY
addEventListener(Event.ENTER_FRAME, masterLoop);
function masterLoop(e:Event){
    var mouseMin:int = 0;
    var mouseMax:int = 0;

    var BUTTON:Array = new Array();
    BUTTON[0] = z1;
    BUTTON[1] = z2;
    BUTTON[2] = z3;
    BUTTON[3] = z4;
    BUTTON[4] = z5;

    for(var i:int=0; i<5; i++){
        var mouseX:int = 0;
        if (mouseX > -360 && mouseX < 360)
        {
            mouseX = Math.ceil(mouseX);
        }else{
            mouseX = 20;
        }

        if (i<12){
            var menuX:int = 0;
            var menuX2:int = 0;
            menuX = Math.ceil(BUTTON[i], x);
            //menuX2 = Math.ceil(BUTTON[i+1], x);
        }else{
            //menuX2 = Math.ceil(BUTTON[0], x);
        }
        if (i < 12 && menuX2 > menuX){
            BUTTON[i+1], x, menuX + 130;
        }   
        if (mouseX < mouseMin && menuX < 1060) {
            diff = (mouseMin-mouseX)/20;
            BUTTON[i], x, (menuX+diff);
        }else if (mouseX <= mouseMin && menuX >= 1060) { 
            diff = Math.ceil((mouseMin-mouseX)/15);
            diff = diff + (menuX - 1060);
            BUTTON[i], x, (-500 + diff);
        } 
        if (mouseX > mouseMax && menuX > -500) {
            diff = (mouseX-mouseMax)/20;
            BUTTON[i], x, menuX-diff; 
        } else if (mouseX >= mouseMax && menuX <= -500) {
            var diff:int = 0;
            diff = Math.ceil((mouseMin-mouseX)/15);
            diff = diff + (menuX + 500);
            BUTTON[i], x, (1060 + diff);
        }
    }
}

Ответы [ 2 ]

1 голос
/ 20 июля 2010

Как я уже говорил в ответе на ваш предыдущий вопрос, установка свойства x из BUTTON[i] выполняется следующим образом:

BUTTON[i].x = -500 + diff

НЕ так:

BUTTON[i], x, (-500 + diff);

EDIT
Также обратите внимание, что ваши строки, проверяющие i <12, всегда будут иметь значение true, так как i является счетчиком от 0 до 5. </p>

РЕДАКТИРОВАТЬ 2
Также обратите внимание, что ваш код, инициализирующий ваш массив, должен находиться за пределами обработчика событий EnterFrame, так как вы без необходимости повторно инициализируете массив в каждом кадре.

1 голос
/ 20 июля 2010

Math.ceil принимает только один аргумент. Вы передаете два в него @:

menuX = Math.ceil(BUTTON[i], x);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...