PDA

Просмотр полной версии : набор слогов на клаве


lukish
28.10.2007, 19:13
Здравствуйте Уважаемые флешеры, спасибо большое за помощь в прошлый раз на эту же тему, всё работает достойно, На этой сцене таких элементов со слогами (цветы) должно быть восемь, Я уже эти скрипты и так и так и переменную i пытался изменить. но реагируеть почемуто только один элемент.
Во вложении черновик игрушки, что изменить в конструкторе для того чтобы на набор слогов срабатывали все восемь (пока там два) элементов.
Буду очень презнателен.
Игорь.

Mr. Fixit
28.10.2007, 19:30
чистить массив надо наверно(я исходник не смотрю)
ur_arr.splice(index, 1);

DarkLight
28.10.2007, 19:39
1) во 2ом случае написано Arr[3] вместо Arr[1]
2) код клавиши для 2ого цветка перепутан, и соответствует М, а не В
3) обнуляйте i при успешном наборе слога

ALiEN_
28.10.2007, 21:18
Эх Игорь, ведь в прошлом посте вам все очень хорошо показали и рассказали?


arr = new Array ( null, null ); // заполним массив пустыми элементами
keyListener = new Object ();

keyListener.onKeyDown = function ()
{
arr.shift (); // выкидываем первый элемент массива
arr.push ( Key.getCode () ); // добавляем в конец второй

if ( arr[0] == 80 && arr[1] == 70 ) setFlower ( zwet1 );
if ( arr[0] == 86 && arr[1] == 70 ) setFlower ( zwet2 );

};
Key.addListener ( keyListener );


function setFlower ( flower )
{
flower._x = 640;
flower._y = 200;
flower._xscale = 35;
flower._yscale = 70;
flower._rotation = 15;
}

lukish
28.10.2007, 23:07
сделал такую штуку

Arr = new Array();
i = 0;
Succes = false;
keyListener = new Object();
keyListener.onKeyDown = function() {
i += 1;
if (i>2) {
i = 2;
}
Arr[i] = Key.getCode();
};
Key.addListener(keyListener);
_root.onEnterFrame = function() {
if (Arr[1] == 80 && Arr[2] == 70) {
_root.zwet1._x = 640;
_root.zwet1._y = 200;
_root.zwet1._xscale = 35;
_root.zwet1._yscale = 70;
_root.zwet1._rotation = 15;
delete i;
}
if (Arr[1] == 68 && Arr[2] == 70) {
_root.zwet2._x = 640;
_root.zwet2._y = 200;
_root.zwet2._xscale = 35;
_root.zwet2._yscale = 70;
_root.zwet2._rotation = 15;
delete i;
}
};

оно работает так: набираеш первый элемент дапустим за он уходит нормально, а второй этемент уходит сразу после набора первой буквы дапустим в

DarkLight
28.10.2007, 23:15
Еще Arr присвойте пустой массив при выпадении комбинации, либо проверяйте чтобы i было равно 2 перед if-ами, а еще лучше воспользуйтесь решением из поста №4 как более правильным и универсальным

lukish
29.10.2007, 15:08
Спасибо большое ALIEN у Вас всё получилось.

ALiEN_
29.10.2007, 19:15
я бы удивился, если бы у меня не получилось =)