Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2009, 15:08
Интересующийся
Отправить личное сообщение для touch_the_sky Посмотреть профиль Найти все сообщения от touch_the_sky
 
Регистрация: 17.06.2009
Сообщений: 13

Помогите пожалуйста. Оптимизация кода.
<script type='text/javascript'>
var text = '';
var pass='ACB';
var coordX=0;
var coordY=0;
var Width=64;
var Height=64;
function getCoords() {
imageMapX = findPosX(imageMap);
imageMapY = findPosY(imageMap);
imageMap.onmousemove = moveDot;
imageMap.onmouseover = moveDot;
imageMap.onclick = coordsFix;
}
function moveDot(cursor) {
if(!cursor) var cursor = window.event;
var x = 0;
var y = 0;
if (cursor.pageX || cursor.pageY) {
x = cursor.pageX;
y = cursor.pageY;
}
else if (cursor.clientX || cursor.clientY) {
x = cursor.clientX + document.body.scrollLeft;
y = cursor.clientY + document.body.scrollTop;
}
x -= imageMapX;
y -= imageMapY;
x -= dX;
y -= dY;
(x < 0) ? coordX = 0 : coordX = x;
(y < 0) ? coordY = 0 : coordY = y;
}

function coordsFix() {
if(((coordX<Width/2+10)&&(coordX>Width/2-10))&&((coordY<Height/2+10)&&(coordY>Height/2-10)))
{
text = '';
var picture = document.getElementById('lock');
picture.src = 'port/lock.png?' + Math.random();
}
else{
if(coordX<Width/2)
{
if(coordY<Height/2)
text = text+'A';
else
text = text+'C';
}
else
{
if(coordY<Height/2)
text = text+'B';
else
text = text+'D';
}}
if(text==pass)
{
var picture = document.getElementById('lock');
picture.src = 'port/lock2.png?' + Math.random();
}
else
{
var picture = document.getElementById('lock');
picture.src = 'port/lock.png?' + Math.random();
}

}

function findPosX(obj) {
var currleft = 0;
if (obj.offsetParent)
while (obj.offsetParent) {
currleft += obj.offsetLeft
obj = obj.offsetParent;
}
else if (obj.x) currleft += obj.x;
return currleft;
}

function findPosY(obj) {
var currtop = 0;
if (obj.offsetParent)
while (obj.offsetParent) {
currtop += obj.offsetTop
obj = obj.offsetParent;
}
else if (obj.y) currtop += obj.y;
return currtop;
}

function getObj(name) {
if (document.getElementById) return document.getElementById(name);
else if (document.all) return document.all[name];
else if (document.layers) return document.layers[name];
else return false;
}

function init() {
dX = 7;
dY = 7;
myForm = getObj('mainForm');
imageMap = getObj('schemePlace');
imageMap.onmouseover = getCoords;
mapWdt = imageMap.offsetWidth - dX;
mapHgt = imageMap.offsetHeight - dY;
}

try {
window.addEventListener('load', init, false);
} catch(e) {
window.onload = init;
}

function check()
{
if(text==pass) alert('Пароль верный,поздравляю!');
else alert('Не угадал пароль,тыкай еще!');
text='';
var picture = document.getElementById('lock');
picture.src = 'port/lock.png?' + Math.random();
}
</script>

<center>

<div id='schemePlace'
style='width:64px;height:64px;'>
<image src='port/lock.png' id='lock'>

<br >
<input type='button' class='input' value='Нажми на меня' onclick='check()'/>


в общем-то вот, необходимо уменьшить код, урезать лишние части.
сам скрипт рисует замок"лок.пнг", при нажатии в лев. верх, лев. низ, прав. верх, замок "открывается" "лок2.пнг". при неправильном наборе не открывается и сообщение выводится "пароль неверный", предыдущий набор сбрасывается.
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2009, 15:12
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

touch_the_sky,
ты две темы создал или у меня глюки?
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2009, 15:13
Интересующийся
Отправить личное сообщение для touch_the_sky Посмотреть профиль Найти все сообщения от touch_the_sky
 
Регистрация: 17.06.2009
Сообщений: 13

глюки видимо..
Ответить с цитированием
  #4 (permalink)  
Старый 17.06.2009, 15:24
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от touch_the_sky
глюки видимо..
Ага, все это один большой глюк, наверное, не стоит отвечать глюку.
Ответить с цитированием
  #5 (permalink)  
Старый 17.06.2009, 15:29
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от touch_the_sky
глюки видимо..
И зачем врать?
равно, как и создавать две темы?
Помогите пожалуйста. Оптимизация кода.
Ответить с цитированием
  #6 (permalink)  
Старый 17.06.2009, 15:33
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,221

И кстати...

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #7 (permalink)  
Старый 17.06.2009, 15:53
Интересующийся
Отправить личное сообщение для touch_the_sky Посмотреть профиль Найти все сообщения от touch_the_sky
 
Регистрация: 17.06.2009
Сообщений: 13

да просто пошутил))

<script type='text/javascript'>
var text = '';
var pass='ACB';
var coordX=0;
var coordY=0;
var Width=64;
var Height=64;
function getCoords() {
imageMapX = findPosX(imageMap);
imageMapY = findPosY(imageMap);
imageMap.onmousemove = moveDot;
imageMap.onmouseover = moveDot;
imageMap.onclick = coordsFix;
}
function moveDot(cursor) {
if(!cursor) var cursor = window.event;
var x = 0;
var y = 0;
if (cursor.pageX || cursor.pageY) {
x = cursor.pageX;
y = cursor.pageY;
}
else if (cursor.clientX || cursor.clientY) {
x = cursor.clientX + document.body.scrollLeft;
y = cursor.clientY + document.body.scrollTop;
}
x -= imageMapX;
y -= imageMapY;
x -= dX;
y -= dY;
(x < 0) ? coordX = 0 : coordX = x;
(y < 0) ? coordY = 0 : coordY = y;
}

function coordsFix() {
if(((coordX<Width/2+10)&&(coordX>Width/2-10))&&((coordY<Height/2+10)&&(coordY>Height/2-10)))
{
text = '';
var picture = document.getElementById('lock');
picture.src = 'port/lock.png?' + Math.random();
}
else{
if(coordX<Width/2)
{
if(coordY<Height/2)
text = text+'A';
else
text = text+'C';
}
else
{
if(coordY<Height/2)
text = text+'B';
else
text = text+'D';
}}
if(text==pass)
{
var picture = document.getElementById('lock');
picture.src = 'port/lock2.png?' + Math.random();
}
else
{
var picture = document.getElementById('lock');
picture.src = 'port/lock.png?' + Math.random();
}

}

function findPosX(obj) {
var currleft = 0;
if (obj.offsetParent)
while (obj.offsetParent) {
currleft += obj.offsetLeft
obj = obj.offsetParent;
}
else if (obj.x) currleft += obj.x;
return currleft;
}

function findPosY(obj) {
var currtop = 0;
if (obj.offsetParent)
while (obj.offsetParent) {
currtop += obj.offsetTop
obj = obj.offsetParent;
}
else if (obj.y) currtop += obj.y;
return currtop;
}

function getObj(name) {
if (document.getElementById) return document.getElementById(name);
else if (document.all) return document.all[name];
else if (document.layers) return document.layers[name];
else return false;
}

function init() {
dX = 7;
dY = 7;
myForm = getObj('mainForm');
imageMap = getObj('schemePlace');
imageMap.onmouseover = getCoords;
mapWdt = imageMap.offsetWidth - dX;
mapHgt = imageMap.offsetHeight - dY;
}

try {
window.addEventListener('load', init, false);
} catch(e) {
window.onload = init;
}

function check()
{
if(text==pass) alert('Пароль верный,поздравляю!');
else alert('Не угадал пароль,тыкай еще!');
text='';
var picture = document.getElementById('lock');
picture.src = 'port/lock.png?' + Math.random();
}
</script>

<center>

<div id='schemePlace'
style='width:64px;height:64px;'>
<image src='port/lock.png' id='lock'>

<br >
<input type='button' class='input' value='Нажми на меня' onclick='check()'/>




ну вот. пожалуйста посоветуйте, как можно сократить обьем? может что-то лишнее увидите, или функцию какую-нибудь переделать можно..

Последний раз редактировалось touch_the_sky, 17.06.2009 в 16:13.
Ответить с цитированием
  #8 (permalink)  
Старый 17.06.2009, 17:52
Интересующийся
Отправить личное сообщение для touch_the_sky Посмотреть профиль Найти все сообщения от touch_the_sky
 
Регистрация: 17.06.2009
Сообщений: 13

опять какое-то условие не выполнено? помогите пожалуйста=)
Ответить с цитированием
  #9 (permalink)  
Старый 17.06.2009, 18:08
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от touch_the_sky
опять какое-то условие не выполнено?
пожалуй, да
мы не делаем что-то за вас, а вы именно этого и хотите
задавайте более конкретный вопросы, и и оптимизируйте сами
и попутно вопрос: чем вам этот код не нравится?
Ответить с цитированием
  #10 (permalink)  
Старый 17.06.2009, 18:21
Интересующийся
Отправить личное сообщение для touch_the_sky Посмотреть профиль Найти все сообщения от touch_the_sky
 
Регистрация: 17.06.2009
Сообщений: 13

да вот жешь..если б он мне не нравился..
задание просто оптимизировать его, каким то образом уменьшить. я честно говоря представления не имею каким. но я и яву плохо знаю. может есть какие-то альтернативные функции, которые меньше объема занимают.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста. Оптимизация кода. touch_the_sky Events/DOM/Window 0 17.06.2009 14:52
Пожалуйста, помогите создать Web-страницу, содержащую заданную форму Mikhail Элементы интерфейса 2 13.05.2009 22:57
Помогите пожалуйста!!! Рудольф Еремян Общие вопросы Javascript 2 11.01.2009 13:41
Помогите, пожалуйста zashibis Общие вопросы Javascript 1 02.12.2008 14:07
Помогите пожалуйста Гость Общие вопросы Javascript 1 23.02.2008 09:17