Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Динамическая вставка в текстовое поле.

Сообщения:  [1-10]   [11-13] 

 
 автор: naught   (05.11.2004 в 01:50)   письмо автору
 
   для: Axxil   (30.10.2004 в 19:08)
 

А сколько ресурсов жрет такой скрипт?

   
 
 автор: Axxil   (30.10.2004 в 19:08)   письмо автору
 
   для: elenaki   (30.10.2004 в 18:51)
 

А где определение текущей позиции курсора?
И здесь если я правильно понял текстареа каждый раз заново перерисовывается.
А мне надо вставлять строку в уже существующий в поле текст.

   
 
 автор: elenaki   (30.10.2004 в 18:51)   письмо автору
 
   для: Axxil   (30.10.2004 в 18:42)
 

ну вот же:

приступим к основным функциям, первая из которых - definefield. Сначала давай прикинем, как она должна выглядеть в общих чертах.

Результатом ее работы будет строка длинною в 600 символов (TEXAREA я предлагаю задать 30х20), которая затем будет записана в наше основное текстовое поле. Поскольку последняя строка, содержащая "ракетку", не вполне обычна, логичным решением будет разбить функцию на два блока: первый отвечает за наполнение первых 570 значений (19 строк), а второй - только за последнюю строку. Таким образом, для первых 19 строк: если значения переменных "мячика" и поля по X и Y совпадают, то пишем "o" (это наш мячик), иначе - "." (точку, т.е. ничего нет). Для последней строки: если совпали координата X строки и переменная положения ракетки racketpos, то пишем "==" (ракетку), иначе - ".." (две точки - наш стандартный наполнитель поля). В конце функции необходимо осуществить вывод нашей переменной printscreen.

Вот как все это реализуется на практике:

Шаг 5: Функция definefield:

function definefield(){ // Объявляем саму функцию и в который раз без аргументов

printscreen=""; // Обнуляем переменную, отвечающую за прорисовку поля

fieldx=fieldy=1; // Начинаем поиск мячика с левого верхнего угла поля

// Блок 1: 

while (fieldy<20){ // Для каждой строки по 19-ю включительно:

for (fieldx=1; fieldx<31; fieldx++){ // Для каждого элемента строки сравниваем:

if (objectx==fieldx && objecty==fieldy) printscreen+="o"; 

// Если совпали координаты, то на этом месте - мячик

else printscreen+="."; // Иначе - пусто

} // Конец цикла for - вся строка просмотрена в поисках мячика

fieldy++; // Берем следующую строку и все сначала, пока не исчерпаем все 19 строк

} // Конец цикла while - все 19 строк пройдены

// Блок 2 для последней 20-ой строки: 

for (fieldx=1; fieldx<16; fieldx++){ // Для каждого второго элемента (Всего 15 позиций!)

if (racketpos==fieldx) printscreen+="=="; // Если совпали, значит рисуем ракетку

else printscreen+=".."; // Иначе - пусто 

} // Конец цикла for - где-то нарисовали ракетку


battleForm.battleTA.value=printscreen; // Рисуем наше поле в TEXTAREA

} // Конец функции definefield

   
 
 автор: Axxil   (30.10.2004 в 18:45)   письмо автору
 
   для: elenaki   (30.10.2004 в 17:02)
 

Этот код у меня не работает. Точнее работает но неправильно определяет позицию курсора. Он определяет одну позицию для всей строки. Причём не понятно по какому принципу.И ещё зачем в текстареа повторять тело функции?

   
 
 автор: Axxil   (30.10.2004 в 18:42)   письмо автору
 
   для: cheops   (30.10.2004 в 18:21)
 

А я чё-то ничего не понял. Если не сложно,плиз, можете указать конкретный кусок кода где искать.

   
 
 автор: cheops   (30.10.2004 в 18:21)   письмо автору
 
   для: elenaki   (30.10.2004 в 17:43)
 

Хм... здорово - мне такое в голову не приходило :) Нужно будет где-нибудь использовать.

   
 
 автор: elenaki   (30.10.2004 в 18:14)   письмо автору
 
   для: elenaki   (30.10.2004 в 17:43)
 

http://web-support.ru/web-tech/java_game.shtml

посмотри вот здесь. это игра на Java-script. там определяется позиция курсора в текстовом поле и вставляет "ракетку" (два символа)

   
 
 автор: elenaki   (30.10.2004 в 17:43)   письмо автору
 
   для: Axxil   (30.10.2004 в 17:34)
 

а если перебирать содержимое текстареа, пока не встретится символ, на котором стоит курсор (номер мы определили), прервать цикл и прибавить новый текст, а потом прицепить остальную строку?

Следующий пример демострирует цикл while, содержащий оператор continue, который выполняется, когда переменная i равна 3. 

i = 0 
n = 0
  while (i<5) { 
    I ++, if (i == 3) 
    continue n + = i
  } 

   
 
 автор: Axxil   (30.10.2004 в 17:34)   письмо автору
 
   для: cheops   (30.10.2004 в 16:57)
 

Это интересно! Но немного не то. Мне надо вставлять строку в текущую позицию курсора.
Определять позицию elenaki меня научила :)))(спасибо). Теперь дело за малым научиться вставлять строку...

   
 
 автор: Axxil   (30.10.2004 в 17:18)   письмо автору
 
   для: elenaki   (30.10.2004 в 17:02)
 

>... ума не приложу :)
Вот и я о том же :)))

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования