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

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

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

Регистрация: Feb 2008
Сообщений: 15
По умолчанию как ограничить движение по оси Х ?

У меня есть мувиКлип - шарик.
Этот шарик движется по оси Х вправо/влево в зависимости от положения мышки (это я уже сделала).
А как мне ограничить это движение? Я не хочу, чтобы его мотало по всему экрану, я хочу, что бы ДОПУСТИМ он отклонялся на 3 см туда, на 4 сюда .... Мне видимо надо дописать какое то условие в IF?

Плиз, не отправляйте меня в вакансии. Я хочу не просто иметь, я хочу ПОНЯТЬ.


Последний раз редактировалось Mueller; 15.03.2008 в 22:44.
Старый 16.03.2008, 01:22
greenya вне форума Посмотреть профиль Отправить личное сообщение для greenya Найти все сообщения от greenya
  № 2  
Ответить с цитированием
greenya

Регистрация: Mar 2008
Сообщений: 6
Код:
var minX:Number = 200;
var maxX:Number = 400;
var accX:Number = 1;

-----

if (_x > maxX) accX = -1;
if (_x < minX) accX = 1;
_x += accX;

Старый 16.03.2008, 03:38
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 3  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Если startDrag'ом двигаете, то можно задать ограничивающий прямоугольник.
startDrag([lockCenter:Boolean], [left:Number], [top:Number], [right:Number], [bottom:Number])

Старый 16.03.2008, 13:48
Mueller вне форума Посмотреть профиль Отправить личное сообщение для Mueller Найти все сообщения от Mueller
  № 4  
Ответить с цитированием
Mueller

Регистрация: Feb 2008
Сообщений: 15
Нет, не stratDrag. Как я понимаю, там больше программирования, что мне пока не осилить. Хотя, оччччень полезно уметь как и ограничивающий прямоугольник задавать, так и координаты ...
Код у меня вот такой
Код:
onClipEvent (enterFrame) {
   mx = _root._xmouse;
  if (mx<_x) {
    dx = _x-mx;
  } else {
    dx = mx-_x;
  }
  moveSpeedx = dx/100;
  if (mx<_x) {
    _x = _x-moveSpeedx;
  } else {
    _x = _x+moveSpeedx;
  }
Сижу, думаю, как сюда вставить код greenya. Читаю Хелп и фирменное руководство.

Спасибо вам обоим!


Последний раз редактировалось Mueller; 16.03.2008 в 13:51.
Старый 16.03.2008, 15:24
greenya вне форума Посмотреть профиль Отправить личное сообщение для greenya Найти все сообщения от greenya
  № 5  
Ответить с цитированием
greenya

Регистрация: Mar 2008
Сообщений: 6
Прицепил рабочий пример с моим алгоритмом.
Разбирайтесь.
Вложения
Тип файла: zip moving_shape_by_x.zip (4.6 Кб, 53 просмотров)

Старый 16.03.2008, 16:08
Mueller вне форума Посмотреть профиль Отправить личное сообщение для Mueller Найти все сообщения от Mueller
  № 6  
Ответить с цитированием
Mueller

Регистрация: Feb 2008
Сообщений: 15
Спасибо !!! не ожидала ! Правда здесь нет зависимости от мышки, но думаю, разобраться можно ... Спасибо !!!

Старый 18.03.2008, 12:24
Mueller вне форума Посмотреть профиль Отправить личное сообщение для Mueller Найти все сообщения от Mueller
  № 7  
Ответить с цитированием
Mueller

Регистрация: Feb 2008
Сообщений: 15
И все же мне нужна ваша помощь!
Не получается у меня ... Мой шарик совсем встал. Проверьте, пожалуйста, код. В чем ошибка?

Код:
onClipEvent (enterFrame) {

\\ задаю ограничивающие координаты по Х. (ТАК можно делать?)
  max_x = 1000;
  min_x = 500;

    mx = _root._xmouse;

\\ ну а дальше сами условия пошли ...

  if (mx<min_x)
    mx=min_x;
  if (mx>max_x)
    mx=max_x;

  if (mx<_x) {
    dx = _x-mx;
  } else {
    dx = mx-_x;
  }
  moveSpeedx = dx/100;
  if (mx<_x) {
    _x = _x-moveSpeedx;
  } else {
    _x = _x+moveSpeedx;
  }

Старый 18.03.2008, 12:30
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 8  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Код:
if (mx<min_x)
    mx=min_x;
  if (mx>max_x)
    mx=max_x;

  if (mx<_x) {
    dx = _x-mx;
  } else {
    dx = mx-_x;
  }
  moveSpeedx = dx/100;
  if (mx<_x) {
    _x = _x-moveSpeedx;
  } else {
    _x = _x+moveSpeedx;
  }
Это шо за ересь? Новая фобия - боязнь отрицательных чисел?

Всё это пишется в одну строчку:
Код:
_x+=(mx-_x)/100;

Старый 18.03.2008, 12:52
Mueller вне форума Посмотреть профиль Отправить личное сообщение для Mueller Найти все сообщения от Mueller
  № 9  
Ответить с цитированием
Mueller

Регистрация: Feb 2008
Сообщений: 15
Цитата:
Сообщение от WindWalker
Это шо за ересь? Новая фобия - боязнь отрицательных чисел?
Это попытки что то оживить ... неужели было все ТАК плохо?
Теперь буду знать, что можно все значительно сократить : )

А моя надежда на помощь так и зависла ... как же ограничить движение и оставить зависимость?
Ну не подключать же девичье слезы : ))

Старый 18.03.2008, 13:04
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 10  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Код:
onClipEvent (enterFrame) {
  max_x = 1000;
  min_x = 500;

  mx = _root._xmouse;

  _x+=(mx-_x)/100;

  if (_x<min_x) 
    _x=min_x;
  if (_x>max_x)
    _x=max_x;
}

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

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

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


 


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


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