| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Полоса жизни :) |
| Автор: R.M. 10.10.2005, 15:20 |
| Скажите пожалуста, как сделать как во многих онлайн играх такая фигня есть - наверху полоска скажем 100 пикселей это твоя энергия (жизни, здоровье) если ты подрался и тебе нанесли урон эта полоса уменьшается, и например каждые 5 секунд восстанавливается 1 пиксель и так до 100% Чтобы можно было задать время восстановления через переменную PHP |
| Автор: Sardar 10.10.2005, 16:49 | ||
Задача разбиваеться на три части:
Полоска это зачастую таблица с двумя ячейками, либо слой-контейнер с слоем-заливкой(float: left). Анимация. Тут проблем нет, запустил таймер и пусть бежит. Обмен инфой с сервером - вот тут много различных подходов, вопрос достоин отдельного топа, но перед этим пробегись по поиску, т.к. раз 5 на него отвечали точно. Простейший пример сказанного:
Постарался написать так что бы не смог тупо copy/paste, попробуй подумать, обернуть самодельный прогрессбар в обьект с удобным интерфейсом |
| Автор: R.M. 10.10.2005, 17:39 | ||
Sardar
попробую |
| Автор: R.M. 10.10.2005, 18:13 | ||
| Sardar Попробовал так
Наверно ты долго будиш смеяца над этим кодом, но я незнаю JS |
| Автор: Sardar 10.10.2005, 21:09 | ||
Это не уважение к участникам форума, всё чаще и чаще народ постит заведомо не рабочие скрипты с элементарными синтаксическими ошибками. С логикой могут быть проблемы, но ошибки синтаксиса тебе интерпретатор сразу скажет, вот и постарайся их убрать. Иначе выглядит как "я делаю вид что пробую, а вы напишите мне готовый код". Второе: пиши на нормальном русском. Чем больше ты "корявишь", тем больше шансов что я удалю пост без обьяснений. Это не особый сленг и даже не феня, не позорься В третьих что конкретно изменилось? Откуда событие onload у слоя? Что конкретно тебе не хватает для завершения задачи? Ведь базовый код есть, в принципе покрывающий две первые задачи из трёх, что я выше описал. Куксикус извини, сейчас мало времени, поэтому не собираюсь писать тебе готовый код, но по могу собрать твой код. При этом не надо делать вид что ты пытаешся, просто возьми и подумай логически. поищи по форуму, что не ясно - спрашивай. |
| Автор: Aliance 10.10.2005, 22:07 |
| Куксикус пользуйся кнопкой код правильно! |
| Автор: butionok 11.10.2005, 19:11 | ||||
| Sardar А разве может clearTimeout убить интервал установленный setInterval? Твой код, который ты написал Куксикусу:
Так что...
относится и к тебе |
| Автор: Sardar 11.10.2005, 19:16 | ||
butionok ну прежде чем говорить проверь, поставь alert, поищи по форуму что есть closures. Кстати не нужно перегибать палку, ошибки логики это нормально, все ошибаемся. На форуме не допускаються скрипты, при старте которых браузер начинает материться на синтаксис, следоватльно участник скрипт не запускал. |
| Автор: Sardar 12.10.2005, 13:34 | ||
Ну и как мне по твоему помочь если ты сам не знаешь чего хочешь? |
| Автор: butionok 13.10.2005, 22:28 |
| Sardar Да, и вправду работает. Извини. Я просто попробовал тот код который запостил Куксикус, а на msdn не написано, что clearTimeout может убить интервал установленный setInterval. |
| Автор: Sardar 14.10.2005, 12:34 | ||
Ой, это я не понял вопроса, я думал ты не врубился почему у меня доступ к tmr есть из вложенной функции Ты прав, снимать интервал через clearTimeout не корректно, но работает, т.к. по моему везде используеться один механизм таймеров. |
| Автор: R.M. 17.10.2005, 00:09 |
| Sardar Ты не подскажеш как заставить заработать тот скрипт который ты дал? |
| Автор: diam 17.10.2005, 01:12 | ||||
Куксикус, ну сколько можно спрашивать общие вещи? Ты уже достаточно давно на форуме, и наверняка уже читал его правила. Задавать нужно конкретные вопросы. Я готов помочь, если будет конкретика. Что именно не работает? У Firefox/Mozilla есть JS console, в которой пишется, какие ошибки в скрипте. Таким образом отладка очень упрощается. Так же полезно разбивать задачу на маленькие кусочки, с которыми проще разбираться. Задавай конкретные вопросы, будешь получать ответы. Иначе можно идти в раздел http://forum.vingrad.ru/index.php?showforum=146. P.S. Почитай http://forum.vingrad.ru/index.php?showtopic=62650, позволю себе процитировать слова chipset:
|
| Автор: Sardar 17.10.2005, 01:29 | ||
Скопируй в .htm, сохрани, запусти. Работает? Да. Тогда что ты подразумеваешь под "заставить заработать"? |
| Автор: R.M. 17.10.2005, 02:04 |
| Sardar Я имею ввиду как сделать чтобы ширина возростала со временем, т.е. скажем если какаята переменная равна 5 то каждую секунду эта штука растёт на 5 пикселей или кадые 5 сек на 1 пиксель это не важно, вобщем в этом та и вся суть как сделать чтобы она заполнялась за время |
| Автор: Sardar 17.10.2005, 16:01 | ||||||
Ну подумай головой хоть немного? Разве тот код что я дал не заполняет полосу по времени? Ты ждёшь готового решения, я бы дал, если бы знал что ты хочешь. Но если честно мне надоело, я хочу видеть здесь общество интелектуалов, решающих интересные задачи. Ты же за всё время только просишь готовый банальный код, который сам бы написал потрать два дня на мануал JS Ну не верю что синтаксис JS сложен, ты ведь вроде на PHP пишешь, значит логикой наделён должен быть Вот изначальный код:
Вот код с изменяемым шагом в пикселах, а не в процентах:
Тебе самому не стыдно? Согласен про offsetWidth ты мог не знать, значит именно это (как узнать ширину рамки) ты и должен был спросить! В стили #bar добавь overflow: hidden, что бы заливка за рамку не убегала. |
| Автор: R.M. 18.10.2005, 08:07 | ||
| Sardar Спасибо, постараюсь не паразитировать
Угу |
| Автор: R.M. 18.10.2005, 09:40 | ||
Нет |