Вход

Просмотр полной версии : Переход по кадрам (клавиатурой)


Evgeny_Flash_8
20.12.2008, 13:34
Продолжение темы: "3 способа написания кода для кнопки"
http://flasher.ru/forum/showthread.php?t=119431

Работает!


var i:Number=1;
var j:Number=6;
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.SPACE :
if (i<j) {
nextFrame();
i=i+1;
}
break;
case Key.LEFT :
if (i>1) {
prevFrame();
i=i-1;
}
break;
case Key.RIGHT :
if (i<j) {
nextFrame();
i=i+1;
}
break;
}
}
Key.addListener(keyListener_obj);


Не работает


stop();
onEnterFrame
var i:Number = 1;
var j:Number = 6;
function goNextFrame() {
if (i<j) {
nextFrame();
i = i + 1;
}
}
function goPrevFrame() {
if (i>1) {
prevFrame();
i = i - 1;
}
}
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.SPACE :
goNextFrame;
break;
case Key.LEFT :
goPrevFrame;
break;
case Key.RIGHT :
function goNextFrame;
break;
}
}
Key.addListener(keyListener_obj);
next_btn.onPress = goNextFrame;
prev_btn.onPress = goPrevFrame;

Wolsh
20.12.2008, 14:32
case Key.SPACE :
goNextFrame();Для вызова функции используется оператор скобки.
case Key.RIGHT :
function goNextFrame;
break;Даже не знаю что здесь имелось в виду, как и во второй строчке - onEnterFrame ;)

silin
20.12.2008, 19:42
уже писал в той теме..
next_btn.onPress = goNextFrame;
в этом контексте означает, что при нажатии кнопки будет попытка выполнить
goNextFrame() "от лица " next_btn, т.е. next_btn.nextFrame(); и пр., поэтому и мимо..

Evgeny_Flash_8
22.12.2008, 18:09
case Key.SPACE :
goNextFrame();Для вызова функции используется оператор скобки

Ура! Работает! С одним вопросом помогли разобраться. Спасибо большое!!!


case Key.RIGHT :
function goNextFrame;
break;


Не работает, но мне уже не надо! :)


[FONT=monospace]
[/FONTДаже не знаю что здесь имелось в виду, как и во второй строчке - onEnterFrame ;)


Эксперементировал, и забыл стереть, когда сюда помещал!

уже писал в той теме..
next_btn.onPress = goNextFrame;
в этом контексте означает, что при нажатии кнопки будет попытка выполнить
goNextFrame() "от лица " next_btn, т.е. next_btn.nextFrame(); и пр., поэтому и мимо..

А это все теория, а на практике как? Я эту тему закрываю. А в той теме продолжу узнавать мехонизмы работы "button", как работает клавиатура РАЗОБРАЛСЯ.

Всем спасибо!

Добавлено через 3 минуты
Помещаю полный код, который работает. КЛАВИАТУРА только.

stop();
var i:Number = _currentframe;
var j:Number = _totalframes;
function goNextFrame() {
if (i<j) {
nextFrame();
i = i + 1;
}
}
function goPrevFrame() {
if (i>1) {
prevFrame();
i = i - 1;
}
}
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.SPACE :
goNextFrame();
break;
case Key.LEFT :
goPrevFrame();
break;
case Key.RIGHT :
goNextFrame();
break;
}
}
Key.addListener(keyListener_obj);
next_btn.onPress = goNextFrame; //пока не работает
prev_btn.onPress = goPrevFrame; //пока не работает


Люди, что я опять не так делаю???
Почему у меня при нажатии клавиш (на первом кадре, когда нажмешь LEFT), начинает комп тупить??? Он перепрыгивает через 1 кадр, потом через 2 кадра. А потом показывает 1 и последний кадр только.
Подскажите? Лучше ошибку в коде!
Прилагаю файл.


stop();
//строгая типизация переменной
var i:Number = _currentframe; // первый кадр
var j:Number = _totalframes; // последний кадр

//определяем функцию goNextFrame()
function goNextFrame() {
if (i<j) {
nextFrame();
i = i + 1;
}
}

//определяем функцию goPrevFrame()
function goPrevFrame() {
if (i>1) {
prevFrame();
i = i - 1;
}
}

var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.SPACE :
goNextFrame();
break;
case Key.LEFT :
goPrevFrame();
break;
case Key.RIGHT :
goNextFrame();
break;
}
}
Key.addListener(keyListener_obj);

//назначаем ссылку на функцию обработчику событий кнопки onPress
next_btn.onPress = goNextFrame;

//назначаем ссылку на функцию обработчику событий кнопки onPress
prev_btn.onPress = goPrevFrame;


Помогите пожалуйста. Этот скрипт тестирование не проходит :(