![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2006
Сообщений: 177
|
function goToWay(way:String) {
var step:Number = 5;
switch (way) {
case "right":
mc1._x -= step;
break;
case "left":
mc1._x += step;
break;
case "up":
mc1._y += step;
break;
case "down":
mc1._y -= step;
break;
}
};
arrowRight_btn.onRelease = function() {
goToWay("right");
};
arrowLeft_btn.onRelease = function() {
goToWay("left");
};
arrowUp_btn.onRelease = function() {
goToWay("up");
};
arrowDown_btn.onRelease = function() {
goToWay("down");
};
Как оптимизировать? |
|
|||||
|
Регистрация: Feb 2006
Адрес: Moscow
Сообщений: 552
|
function goToWay(way:String) {
var step:Number = 5;
var s:Number = (way == "left" && way != "up" && way != "down") ? -1 : 1;
var d:Number = (way == "up" && way != "left" && way != "right") ? -1 : 1;
var __x:Number = (way == "right" || way == "left") ? step*s : 0;
var __y:Number = (way == "up" || way == "down") ? step*d : 0;
mc1._x += __x;
mc1._y += __y;
}
__________________
Учимся правильно задавать вопросы Последний раз редактировалось Aziz Zaynutdinoff; 07.05.2007 в 17:57. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 177
|
Aziz Zaynutdinoff, спасибо, но по-моему так еще запутанее чем у меня.
И еще вопрос по оптимизации: как быть с баттонами? То есть можно ли, скажем, сделать какую-нибудь универсальную для этих кнопок функцию, чтобы при этом аргументы в goToWay они передавали разные ? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
function goToWay (x:Number, y:Number) {
var step:Number = 5;
mc1._x += step * x;
mc1._y += step * y;
}
arrowRight_btn.onRelease = function () {
goToWay (1, 0);
};
arrowLeft_btn.onRelease = function () {
goToWay (-1, 0);
};
arrowUp_btn.onRelease = function () {
goToWay (0, -1);
};
arrowDown_btn.onRelease = function () {
goToWay (0, 1);
};
|
|
|||||
|
Регистрация: Feb 2006
Адрес: Moscow
Сообщений: 552
|
знаешь на самом деле я бы просто передавал два параметра
![]() function goToWay(__x:Number, __y:Number):Void
{
__x = (__x == undefined) ? 0 : __x;
__y = (__y == undefined) ? 0 : __y;
_mc._x += __x;
_mc._y += __y;
};
btn.onRelease = function()
{
goToWay(-5); //влево
}
btn1.onRelease = function()
{
goToWay(-5, 5); //вниз-влево
}
iNils опередил хотя есть немного разница
__________________
Учимся правильно задавать вопросы |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
var step = 5;
var wayObj = {
left:{dx: step, dy:0},
right:{dx:-step, dy:0},
down:{dy: step, dx:0},
up:{dy: -step, dx:0}
}
function goToWay(way:String) {
var ob = wayObj[way];
mc1._x += ob.dx;
mc1._y += ob.dy;
};
arrowRight_btn.onRelease = function() {
goToWay("right");
};
arrowLeft_btn.onRelease = function() {
goToWay("left");
};
arrowUp_btn.onRelease = function() {
goToWay("up");
};
arrowDown_btn.onRelease = function() {
goToWay("down");
};
|
|
|||||
|
loading 50%
|
var step:Number = 5;
var n:Object = {r:{x:1,y:0},l:{x:-1,y:0},t:{x:0,y:-1},d:{x:0,y:1}};
function goToWay(way) {
mc1._x+= step*n[way].x;
mc1._y+= step*n[way].y;
}
arrowRight_btn.onRelease = function()
{
goToWay("r");
};
arrowLeft_btn.onRelease = function() {
goToWay("l");
};
arrowUp_btn.onRelease = function() {
goToWay("t");
};
arrowDown_btn.onRelease = function() {
goToWay("d");
};
![]() Последний раз редактировалось aksios; 07.05.2007 в 23:48. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
var step = 5;
var wayObj = {
left:{dx: step},
right:{dx:-step},
down:{dy: step},
up:{dy: -step},
down20px:{dy: 20},
downRight20px:{dy: step, dx:-20}
}
function goToWay(way:String) {
var ob = wayObj[way];
if( ob.dx ) mc1._x += ob.dx;
if( ob.dy ) mc1._y += ob.dy;
};
function btnOnRelease() {
if( this.dir == undefined ) this.dir = (this._name.split("_"))[0];
gotoWay(this.dir);
};
right_btn.onRelease = left_btn.onRelease = up_btn.onRelease = btnOnRelease;
down_btn.onRelease = down20px_btn.onRelease = downRight20px_btn.onRelease = btnOnRelease;
![]() Последний раз редактировалось Kikasso; 08.05.2007 в 00:16. |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 264
|
Цитата:
var step:Number = 5;
arrowRight_btn.onRelease = function() {
mc1._x -= step;
};
arrowLeft_btn.onRelease = function() {
mc1._x += step;
};
arrowUp_btn.onRelease = function() {
mc1._y += step;
};
arrowDown_btn.onRelease = function() {
mc1._y -= step;
};
ps. А может вам просто класс Key нужен? Последний раз редактировалось this.create; 08.05.2007 в 00:17. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
вы выиграли..
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|