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

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

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

Регистрация: Jul 2009
Сообщений: 40
По умолчанию Еще про движение мувика

Уважаемые Дамы и Господа!
Еще один вопрос от новичка. Суть следующая:
На сцене лежит полупрозрачный мувик, который всем своим видом говорит нам, что он как бы дым. Назовем его smoke. Ширина сцены 1024, высота, соответственно 768. Задача: если курсор мыши переходит в левую часть экрана, то smoke должен сдвинуться вправо, если курсор уходит в правую часть экрана, соответственно, smoke уходит влево. то же про вверх и вниз...

Как придумал решить:

Код AS1/AS2:
var x1:Number = 250;
var x2:Number = 774;
var y1:Number = 150;
var y2:Number = 618;
var xc = _xmouse;
var yc = _ymouse;
if (xc<x1) {
	_root.smoke._x == -924;
};
if (xc>x2) {
	_root.smoke._x == -1124;
};
Ничего не происходит... И, кстати, хотелось бы сделать движение плавным... Где ошибка и как придать плавности? Подскажите плиз!!!

Старый 21.09.2009, 01:57
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Главная ошибка в том, что у вас проверка условий не выполняется.
Вернее, выполняется один раз, при начальном исполнении кода.
А вам нужно ее выполнять непрерывно.
onEnterFrame или setInterval вам в помощь.
И приравнивание значения пишите через "=",
== - это сравнение.

Добавлено через 3 минуты
И почему у "x" такие дикие отрицательные значения? На _root это где-то далеко слева за областью сцены.
Возможно, вы имели ввиду:
Код AS1/AS2:
_root.smoke._x -= 924;


Последний раз редактировалось mooncar; 21.09.2009 в 02:04.
Старый 21.09.2009, 02:11
rockerror вне форума Посмотреть профиль Отправить личное сообщение для rockerror Найти все сообщения от rockerror
  № 3  
Ответить с цитированием
rockerror
 
Аватар для rockerror

Регистрация: Jul 2009
Сообщений: 40
Благодарю!!! Хммм...
Теперь код выглядит:
Код AS1/AS2:
var x1:Number = 250;
var x2:Number = 774;
var y1:Number = 150;
var y2:Number = 618;
var xc = _xmouse;
var yc = _ymouse;
onEnterFrame = function(){
if (xc<x1) {
	_root.bg_2._x = -924;
};
if (xc>x2) {
	_root.bg_2._x = -1124;
};
};
Что касается "диких отрицательных значений" - все верно, просто smoke значительно больше размера сцены)))

Добавлено через 33 секунды
Все равно не работает(((

Добавлено через 2 минуты
Хммм... для меня бы могла стать решением проблемы возможность инвертировать движение мувика при использовании функции .startDrag()... Это возможно?

Старый 21.09.2009, 02:19
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
А при чем тут startDrag?
У вас опять беда - вы всего один раз проверяете значение мышкиных координат.
Попробуйте так:
Код AS1/AS2:
var x1:Number = 250;
var x2:Number = 774;
var y1:Number = 150;
var y2:Number = 618;
 
this.onEnterFrame = function(){
 if (_root._xmouse < x1) {
	_root.bg_2._x = -924;
 }
 if (_root._xmouse > x2) {
	_root.bg_2._x = -1124;
  }
};
PS. Почему вы так ужасно оформляете код с точки зрения синтаксиса AS?
Зачем точка с запятой в конце тела операций if? Откуда это?

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

Регистрация: Jul 2009
Сообщений: 40
Недавно я в as в общем...)) И вообще я дизайнер)))))

Добавлено через 3 минуты
Спасибо огромное!!! Заработало вродь))) Позвольте еще вопрос, как сделать перемещение мувика в новые координаты плавным?

Старый 21.09.2009, 02:25
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Оно понятно, я тоже не флешер, но учебники-то и примеры по AS более или менее у нас одинаковые ведь были в массе?

Старый 21.09.2009, 02:26
rockerror вне форума Посмотреть профиль Отправить личное сообщение для rockerror Найти все сообщения от rockerror
  № 7  
Ответить с цитированием
rockerror
 
Аватар для rockerror

Регистрация: Jul 2009
Сообщений: 40
=))) Хых)) У меня только справочник имеется))) Но очень хороший

Старый 21.09.2009, 02:31
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Настолько хороший, что в нем указывается, что в конце блока выражений {} нужно ставить точку с запятой? Не верьте ему.
Точка с запятой ставится в конце одного выражения:
Код AS1/AS2:
var x:Number = 7;
this.onEnterFrame = function() { ...... } ;
Тут не ставится:
Код AS1/AS2:
function myFunction() {
....
}
 
if (условие) {
...
}
else {
...
}

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

Регистрация: Jul 2009
Сообщений: 40
Позвольте еще вопрос, как сделать перемещение мувика в новые координаты плавным?

Старый 21.09.2009, 02:36
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от rockerror Посмотреть сообщение
как сделать перемещение мувика в новые координаты плавным?
Сделайте не единичную установку новых координат
Код AS1/AS2:
_root.bg_2._x = -924;
а приращение:
Код AS1/AS2:
_root.bg_2._x -= 10;
или знак другой, разберетесь... смысл понятен?

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

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

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


 


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


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