PDA

Просмотр полной версии : Помогите с IF'ом, пожалста


s_JecK_s
18.11.2007, 18:09
Проблема такая: как сделать чтобы при нажатии на кнопку (буквы) что то происходило, как бы
IF(Key.isDown(???)) {};
помогите кто знает решение

udaaff
18.11.2007, 18:11
Key.onKeyDown

s_JecK_s
18.11.2007, 18:24
а целиком с синтаксисом например на кнопку W можеш написать?

udaaff
18.11.2007, 18:26
Key.onKeyDown событие, которое генерируется классом Key при нажатии юзером на кнопку на клаве. Подробнее смотри в хелпе. F1

s_JecK_s
18.11.2007, 18:31
IF(Key.isDown(Key.onKeyDown"а вот тут как писать?")){};

udaaff
18.11.2007, 18:48
Пример из хелпа (для особо ленивых)
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
trace("DOWN -> Code: "+Key.getCode()+"\tACSII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii()));
};
keyListener.onKeyUp = function() {
trace("UP -> Code: "+Key.getCode()+"\tACSII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii()));
};
Key.addListener(keyListener);

s_JecK_s
18.11.2007, 18:51
а на IFе нельзя сделать? или как нибудь по проще, я какбы начинающий, и в этом скрипте ниче непонимаю

udaaff
18.11.2007, 18:53
А что вам вообще нужно сделать?

s_JecK_s
18.11.2007, 18:57
вот скрипт:
if(Key.isDown(Key.UP)) {_root["player"]._y-=10};

как сделать тоже самое только вместо UP кнопку типа буквы на клаве, или NUN-ов?

udaaff
18.11.2007, 19:04
хехе

car_mc.onEnterFrame = function() {
if (Key.isDown(Key.RIGHT)) {
this._x += 10;
} else if (Key.isDown(Key.LEFT)) {
this._x -= 10;
}
};

s_JecK_s
18.11.2007, 20:51
есть другие варианты которые делали бы так:

если кнопка "W(A,S,D)" нажата то Х(У) объекта увеличится(уменьшится) к примеру на 5
(!!!!!!)Примечание: варианты с кнопками LEFT RIGHT UP DOWN... не предлагать, нужно чтобы кнопки были буквами или цифрами(A-z,0-9,NUM0-NUM9)

CrazyFlasher
18.11.2007, 20:53
F1 -> Keyboard keys & key code values

Ostgur
18.11.2007, 20:55
car_mc.onEnterFrame = function() {
if (Key.isDown(ord("D"))){
this._x += 10;
}
if (Key.isDown(ord("A"))){
this._x -= 10;
}
if (Key.isDown(ord("W"))){
this._y -= 10;
}
if (Key.isDown(ord("S"))){
this._y += 10;
}
};

s_JecK_s
18.11.2007, 20:55
CrazyFlasher, думаешь я что то понял из того что ты написал?(новичок я)
и желательно прямая помощь, типа дать скрипт, или че нить еще

Ostgur, а где указывать название объекта в твоем скрипте? (который переместить на 10) и еще, скрипт должен делать тоже самое что и этот, тока на буквах(player-то чо надо двигать):
if(Key.isDown(Key.UP)) {_root["player"]._y-=10};
if(Key.isDown(Key.DOWN)) {_root["player"]._y+=10};
if(Key.isDown(Key.RIGHT)) {_root["player"]._x+=10};
if(Key.isDown(Key.LEFT)) {_root["player"]._x-=10};

aksios
18.11.2007, 21:25
function myPress(){
code=Key.getCode();
if (code>=48 && code<=90){trace ("лат раскладка тыкнута буква или цифра на основной клаве")};
trace (Key.getCode());
}
var myListener=new Object();
myListener.onKeyDown=myPress;
Key.addListener(myListener);
Собственно все. :)
И пишите свои if до потери пульса.
ЗЫ: тока при тестировании отключите клавиши управления во флеше.

Ostgur
18.11.2007, 21:32
:quiet:
404169211 (23:06:18 18/11/2007)
Разрешение добавить в список контактов


404169211 (23:06:18 18/11/2007)
Вас добавили
привет, я с флэшера с вопросом по твоему скрипту

ostgur (23:06:37 18/11/2007)
привет, по какому скрипту?

s-jeck-s (23:07:06 18/11/2007)
car_mc.onEnterFrame = function() {if (key.isDown(ord("D"))){ this._x += 10;}if (key.isDown(ord("A"))){this._x -= 10;}if (key.isDown(ord("W"))){ this._y -= 10;}if (key.isDown(ord("S"))){this._y += 10;}};

ostgur (23:07:16 18/11/2007)
ну и?

s-jeck-s (23:07:36 18/11/2007)
где имяобъекта писать?


ostgur (23:07:44 18/11/2007)
car_mc.

s-jeck-s (23:08:17 18/11/2007)
это имя копии, или в линкэйдже прописывать?

ostgur (23:08:31 18/11/2007)
имя копии(instance name)

s-jeck-s (23:09:56 18/11/2007)
а в начале надо писать онклипэвент...?


s-jeck-s (23:10:03 18/11/2007)
а

ostgur (23:10:25 18/11/2007)
нет

s-jeck-s (23:10:42 18/11/2007)
скрипт на кадр ставить?

ostgur (23:10:46 18/11/2007)
да

s-jeck-s (23:12:08 18/11/2007)
просто я хочу простейшие догонялки на двоихсделать, первый игрок на влево вправо вверх вниз, а второй на w a s d

s-jeck-s (23:12:54 18/11/2007)
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Syntax error.
**** stop()player.onEnterFrame = function() {
*
Total ActionScript Errors: 1 * Reported Errors: 1
*
вот выдало

ostgur (23:14:21 18/11/2007)
код внимательнее пиши, свой код

s-jeck-s (23:15:04 18/11/2007)
я после stop() нажал энтер, провиерил наошибки, пишет, что их нету

s-jeck-s (23:15:12 18/11/2007)
тестируюсцену

ostgur (23:15:22 18/11/2007)
собственно, stop()player

s-jeck-s (23:15:26 18/11/2007)
ниче неработает

ostgur (23:15:32 18/11/2007)
это чё? "stop()player"

s-jeck-s (23:15:46 18/11/2007)
это я исправил

s-jeck-s (23:15:58 18/11/2007)
но неработает при тестировании

s-jeck-s (23:16:12 18/11/2007)
в скрипте ошибок нет, а неработает

ostgur (23:16:27 18/11/2007)
а это? "Total ActionScript Errors: 1 * Reported Errors: 1"

s-jeck-s (23:17:14 18/11/2007)
это он больше невыдает, онваще ошибок скрипта невыдает. после того как я stop()player исправил

ostgur (23:17:27 18/11/2007)
кто такой player?

s-jeck-s (23:17:46 18/11/2007)
объект который двигать

ostgur (23:17:59 18/11/2007)
а _root["player"] тогда кто?

s-jeck-s (23:18:28 18/11/2007)
какой еще _root["player"]???

s-jeck-s (23:19:24 18/11/2007)
а

s-jeck-s (23:20:16 18/11/2007)
stop()
player.onEnterFrame = function() {
if (key.isDown(ord("D"))){
*this._x += 10;
}
if (key.isDown(ord("A"))){
this._x -= 10;
}
if (key.isDown(ord("W"))){
*this._y -= 10;
}
if (key.isDown(ord("S"))){
this._y += 10;
}
};

s-jeck-s (23:20:36 18/11/2007)
вот этотскриптна фрэйме висит, большескриптов вобще нет

s-jeck-s (23:20:56 18/11/2007)
ни на клипах нигде

s-jeck-s (23:21:24 18/11/2007)
уменя Flash MX 2004

s-jeck-s (23:21:51 18/11/2007)
че молчиш

ostgur (23:22:38 18/11/2007)
под AS1 компилить надо...

s-jeck-s (23:23:10 18/11/2007)
как это делать

ostgur (23:23:42 18/11/2007)
Publish Settings -> Action Script Version

s-jeck-s (23:24:16 18/11/2007)
выбрано 2.0

s-jeck-s (23:24:25 18/11/2007)
можно 1.0 выбрать

ostgur (23:24:32 18/11/2007)
нужно

s-jeck-s (23:25:04 18/11/2007)
разницы ненаблюдаю

s-jeck-s (23:25:15 18/11/2007)
всеравно недвиг

ostgur (23:25:26 18/11/2007)
объект называется как?

s-jeck-s (23:25:36 18/11/2007)
player

s-jeck-s (23:25:56 18/11/2007)
и в линкэйдже прописан

ostgur (23:26:07 18/11/2007)
линейджен не надо прописывать

s-jeck-s (23:26:11 18/11/2007)
и инстанс копи тоже

s-jeck-s (23:26:33 18/11/2007)
все равно неработает

s-jeck-s (23:26:46 18/11/2007)
убраллинкэйдж

s-jeck-s (23:27:24 18/11/2007)
почему же неработает?

ostgur (23:27:36 18/11/2007)
без понятия

s-jeck-s (23:27:58 18/11/2007)
а еще есть варианты как сделать вот это:

s-jeck-s (23:28:16 18/11/2007)
*if(Key.isDown(Key.UP)) {_root["player"]._y-=10};
if(Key.isDown(Key.DOWN)) {_root["player"]._y+=10};
if(Key.isDown(Key.RIGHT)) {_root["player"]._x+=10};
if(Key.isDown(Key.LEFT)) {_root["player"]._x-=10};

s-jeck-s (23:28:24 18/11/2007)
только на буквах?

ostgur (23:28:33 18/11/2007)
нету

s-jeck-s (23:28:40 18/11/2007)
жэсть

s-jeck-s (23:29:20 18/11/2007)
можеш исходник кинуть с работ скриптом?

ostgur (23:29:35 18/11/2007)
куда?

s-jeck-s (23:29:43 18/11/2007)
на аську

ostgur (23:30:00 18/11/2007)
у меня невозможно

s-jeck-s (23:30:30 18/11/2007)
потомучто ты у меня офф лайн, наверно невидимость?

ostgur (23:30:48 18/11/2007)
я на форум кино и лог нашей беседы

s-jeck-s (23:31:07 18/11/2007)
как кинеш напиши

ostgur (23:31:18 18/11/2007)
ок

s_JecK_s
19.11.2007, 13:30
а как этот скрипт переделать под AS 2?:

car_mc.onEnterFrame = function() {
if (Key.isDown(ord("D"))){
this._x += 10;
}
if (Key.isDown(ord("A"))){
this._x -= 10;
}
if (Key.isDown(ord("W"))){
this._y -= 10;
}
if (Key.isDown(ord("S"))){
this._y += 10;
}
};

etc
19.11.2007, 13:43
s_JecK_s, отредактируйте свой пост и оформите код тегами .

s_JecK_s
19.11.2007, 16:25
сделано, теперь бы ответ услышать)

s_JecK_s
19.11.2007, 18:05
вот,у меня еще важный вопрос. хочу сделать что бы при нажатии двух кнопок сразу, герой крутился на опр. число радиан(или градусов...)
скрипт примерно такой(может просто ошибки синтаксиса просто исправить надо) скрипт еа AS 1.0
имя_объекта.onEnterFrame = function() {
if (Key.isDown(ord("S")))and(Key.isDown(ord("W"))){
rotation += 10;
}
};

Ostgur
19.11.2007, 18:30
//AS2.0 code
имя_объекта.onEnterFrame = function(){
keyW = ord("W");
keyA = ord("D");
if (Key.isDown(keyW)and(Key.isDown(keyA))){
this._rotation = -10;
}
}

s_JecK_s
19.11.2007, 19:03
вот что мне было надо:
имя_объекта.onEnterFrame = function(){
keyW = ord("W");
keyD = ord("D");
if (Key.isDown(keyW)and(Key.isDown(keyD))){
this._rotation = +10;
}
}