Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.02.2008, 21:27
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 1  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Attention Граница Движения

Имеется код, который как я считаю должен ограничивать движение мувика "quad" по оси _y. Но этого не происходит. Объясните пожалуйста что здесь не так.
Код:
on (keyPress "<Left>") {
	_x -= 3;
}
on (keyPress "<Right>") {
	_x += 3;
}
on (keyPress "<Up>") {
	var Vy = -18;
	_root.onEnterFrame = function() {
		if (quad._y>220) {
			Vy = Vy*(-0.2);
		}
		_y += Vy*1, 6;
		Vy += 2;
	};
}

Старый 19.02.2008, 22:02
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Видимо код считает иначе.
1. Что за "запятая 6"? Дробь задается через точку.
2. Почему сравние _y делается для quad, а приращение по _y для _root?
Ограничение делается например так:
Код:
quad._y += Vy * 1.6;
Vy += 2;
if (quad._y > 220) {
	quad._y = 220
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.02.2008, 21:20
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 3  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
И еще вопрос... Почему переменной a не присваевается новое значение (даже если присваевается, то код работает не так как мне надо). Значение переменной остается ноль, хотя как поидеи должно меняться взависимости от нажатой клавишы.
Код:
onClipEvent (keyDown) {
	var a = 0;
	if (Key.getCode() == Key.RIGHT) {
		_root.quad._x += 1.6;
		if (a == 0) {
			a = 1;
			_root.quad._xscale -= 200;
		}
	} else if (Key.getCode() == Key.LEFT) {
		_root.quad._x -= 1.6;
		if (a == 1) {
			a = 0;
			_root.quad._xscale += 200;
		}
	}
}

Старый 21.02.2008, 21:26
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
При каждом нажатии кнопки срабатывает код
Код:
var a = 0;
Что делает бессмысленным проверку a == 1
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.02.2008, 23:23
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 5  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
необходимо
Код:
var a = 0;
вытащить за пределы функции, иначе никакого изменения var a не будет...
__________________
тут я

Старый 22.02.2008, 23:09
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 6  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Когда я вытаскиваю var за пределы onClipEvent, Flash начинает ругаться...
По ходу дела у меня возникло еще два вопроса:
1)Можно ли считывать переменную из одного обработчика событий другим?
2)Имеется код, который заставляет объект прыгать, при нажатии клавиши Up. Если же клавишу нажимать много раз подряд или зажать, то объект начинает взлетать вверх, что абсолютно неприемлимо. Так вот... Что требуется для того чтобы объект не реагировал на нажатие клавиши Up, до того как действие не будет совершено?

Код:
onClipEvent (keyDown) {
	if (Key.getCode() == Key.UP) {
		var Vy = -9;
		_root.worm.gotoAndStop(3);
		onEnterFrame = function () {
			_y += Vy*1.6;
			Vy += 1;
			if (_y>201.25) {
				_y = 201.25;
			}
		};
	}
}


Последний раз редактировалось FlashRus; 22.02.2008 в 23:12.
Старый 22.02.2008, 23:28
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Потому, что onClipEvent устарело 6 лет назад, надо использовать onEnterFrame, а код писать либо в кадрах, либо в классах.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 23.02.2008, 01:48
Fernando Costa вне форума Посмотреть профиль Отправить личное сообщение для Fernando Costa Найти все сообщения от Fernando Costa
  № 8  
Ответить с цитированием
Fernando Costa
 
Аватар для Fernando Costa

Регистрация: Oct 2006
Адрес: simferopol -> kyiv
Сообщений: 2,161
Отправить сообщение для Fernando Costa с помощью ICQ
...либо как ламер
Код:
onClipEvent (load) {
	var a = 0;
}
__________________
: M F N W :

Старый 23.02.2008, 05:19
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 9  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Как сделать тоже самое через onEnterFrame??? Ведь он начинает проверяться загрузка нового кадра и если присваивать к примеру _y += 2, то мувик поедет...

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.