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

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

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

Регистрация: Sep 2005
Сообщений: 99
По умолчанию Плавное изменение координат как реакция на изменение _xmouse _ymouse

Как осуществить плавное изменение координат клипа при изменении _xmouse и _ymouse (при движении мышью)?

Старый 30.10.2006, 17:37
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 2  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
реализовать инерцию

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Обычно я пользуюсь формулой

Код:
 my_mc.onMouseMove = function() {
       
        _root.onEnterFrame = function() {
               my_mc._x = my_mc._x - (my_mc._x - _xmouse)/speed;
               my_mc._y = my_mc._y - (my_mc._y - _ymouse)/speed;
       }
}
где speed - скорость, задаваемая вручную или программно.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 31.10.2006 в 02:43.
Старый 31.10.2006, 03:01
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Более корректное решение:
Код:
//// mc - имя вдигающегося клипа
mc.onMouseMove = function () {
	this.speed = 5;
	this.onEnterFrame = function () {
		var dx = this._x - this._parent._xmouse;
		var dy = this._y - this._parent._ymouse;
		this._x -= dx / this.speed;
		this._y -= dy / this.speed;
		if (!(Math.abs (dx) > 0.01 && Math.abs (dy) > 0.01)) {
			this._x = this._parent._xmouse;
			this._y = this._parent._ymouse;
			delete this.onEnterFrame;
		}
	};
};
Единственный момент, что у данного клипа, не должен использоваться onEnterFrame.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Sep 2005
Сообщений: 99
Спасибо преогромное!

Старый 31.10.2006, 13:37
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А у меня что-то вроде this._x += (_xmouse-this._x)/speed;

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

Регистрация: Oct 2002
Адрес: Санкт-Петербург
Сообщений: 44
Огромное спасибо Dimalar`у за вопрос и iNils`у за ответ!
Если никто не возражает, я разовью тему...

Как ограничить перемещение мувика по сцене собственными границами...
Примерчик прикрепил для удобства. Условия: сцена размером 760*220 и мувик размерами 900*300. Задача: при достижении одного из краёв мувика границы сцены движение должно прекратиться. Т.е. красная линия в кадре появляться не должна...
Вложения
Тип файла: rar sample.rar (3.9 Кб, 66 просмотров)
__________________
Горячий самовар, медовые коврижки.

Старый 31.10.2006, 15:38
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Сообщение от __etc
А у меня что-то вроде this._x += (_xmouse-this._x)/speed;
Да, конечно Ещё хотелось бы заметить, что лучше не делить на скорость, а умножать. Тогда можно будет задавать скорость 0 для каких-то нужд.
__________________
Reality.getBounds(this);

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

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
Код:
function check(mc:MovieClip){
  var upY:Number=Stage.height/2+(mc._height/2-Stage.height/2);
  var downY:Number=Stage.height/2-(mc._height/2-Stage.height/2);
  var rightX:Number=Stage.width/2+(mc._width/2-Stage.width/2);
  var leftX:Number=Stage.width/2-(mc._width/2-Stage.width/2);
  if(mc._y>=upY){
    mc._y-=4;
  }
  if(mc._y<=downY){
    mc._y+=4;
  }
  if(mc._x>=rightX){
    mc._x-=4;
  }
  if(mc._x<=leftX){
    mc._x+=4;
  }
}

Старый 31.10.2006, 15:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Wolsh, можно и умножать.

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

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

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


 


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


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