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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.07.2007, 18:55
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 1  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
По умолчанию скролинг картинки мышкой (без нажатия)

цель: создать окошко в котором "сидит" картинка большего размера чем окно - соответственно с маской
при наведении мышкой на окно начинается прокручиваться картинка в сторону противоположную направлению мышки (с пропорциональной скоростью скрола, от центра окошка)
(предполагаю позже сделать скейл картинки бегунком...)

Код:
onClipEvent (load) {
	_root.attachMovie("pict1", "pict1", this.getNextHighestDepth());
	_root.pict1.setMask(this);

	x_center = _x;
	y_center = _y;
	x_min = (_x-(_root.pict1._height-_root.window._height))/2;
	y_min = (_y-(_root.pict1._width-_root.window._width))/2;
	_root.pict1._x=x_center;
	_root.pict1._y=y_center;
}

onClipEvent (mouseMove) {
	this._alpha = 100;
			if (_root.pict._x <= _x and _root.pict._x >= x_min) {
//				trace (pict1._y);
				_root.pict1._x=(x_center-((_xmouse*((x_center-_xmouse)/_height))));
			}
			if (_root.pict._y <= _y and _root.pict._y >= y_min) {
				_root.pict1._y=(y_center-((_ymouse*((y_center-_ymouse)/_width))));
			}
}
(условия почему-то вообще не работают...)

результат: запутался во вроде бы несложных вычислениях
сейчас работает как бревно по сравнению с яхтой...

помогите правильно всё расчитать ...

здесь исходник: http://master-ais.narod.ru/TTT/scroll.zip

или хотябы примеры на разборку подкиньте
__________________
Самый великий программер - БОГ!


Последний раз редактировалось Aisaid; 16.07.2007 в 19:44.
Старый 17.07.2007, 14:43
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 2  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
так никто ничего не подскажет?
__________________
Самый великий программер - БОГ!

Старый 17.07.2007, 15:50
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 3  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Не проверял, но должно работать - из похожего своего кода выдрал.

Код:
	mask_mc.onRollOver=function(){
		nInterval=setInterval(Delegate.create(this, function(){
			window_mc._x = -this._xmouse/this._width*window_mc._width;
			window_mc._y = -this._ymouse/this._height*window_mc._height;
		}),150);
	};
-------
при роллауте убиваешь интервал.

З.Ы.Спасибо за идейку - дешево и сердито.)))


Последний раз редактировалось Torero; 17.07.2007 в 15:53.
Старый 19.07.2007, 11:57
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 4  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
Torero
спасибо, так проще вычислять, да
но лучше ставить не ОнРоллОвер, а ОнИнтерФрейм - с условием проверки хитов

я ещё хотел сделать динамику - инерцию и зависимость скорости скролинга от центра окошка...
как это осуществить? какими алгоритмами?
__________________
Самый великий программер - БОГ!

Старый 19.07.2007, 14:07
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 5  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
1.onRollOver или onEnterFrame - зависит от задачи. используя onEnterFrame, надо будет сделать так чтобы код не жрал ресурсы когда мышь не наведена. Неплохой вариант - запускать oEF клипа при ролловере и вырубать при роллауте (сам не пробовал пока, но думаю, что проблем не возникнет).
2.Немного соврал в ответе
Код:
		window_mc._x=-this._xmouse/this._width*window_mc._width+this._xmouse;
		window_mc._y=-this._ymouse/this._height*window_mc._height+this._ymouse;
3.ускорение:введи в правую часть выражения множитель, размер которого зависит от мыши и ширины. что-нить типа "Math.abs(this._width/2-this._xmouse)/5" или юзай tween
4.инерцию смоделировать можно, но сложно - сам не делал, а возиться лень. юзай tween.
З.Ы. Дважды подумай нужно-ли это вообще - а то иногда столько поналепят всего, что просто смотреть тошно.


Последний раз редактировалось Torero; 19.07.2007 в 14:13.
Старый 19.07.2007, 16:41
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 6  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
Torero
спасибо, всё правильно говоришь - излишества часто портят впечатление (да и когда флешка тормозит от "красивостей" очень раздражает)
просто нужно было для галлереи, при просмотре каринки в маленьком окошке, чтобы она удобно и красиво скролилась - видел подобный эффект на каком-то сайте, выглядит красиво и ресурсрв не жрёт (да и много ли нужно вычислений чтобы передвинуть одну единстаенную картинку...)

а Твины програмно можно использовать? я не знал...
т.е. можно задавать програмно траекторию движения и ускорение ???
как? именно это мне и нужно! подскажите плиз
__________________
Самый великий программер - БОГ!

Старый 31.07.2007, 20:36
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 7  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
подскажите пожалуйста, как работать с классами
мне хотелось бы этот пример: http://www.sephiroth.it/tutorials/flashPHP/scrollRect/
как-то использовать

или как этот пример использовать/преобразить в обычный скрипт?
плиииз
__________________
Самый великий программер - БОГ!

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

Регистрация: Sep 2002
Сообщений: 30,787
Гм, а чем класс не есть AS-скрипт?

Старый 01.08.2007, 12:18
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 9  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
ладно, согласен, всё это скрипт

но как мне этот код использовать?
только не нужно писать - "бери и пользуй" ... дайте пожалуйста конкретные советы

меня смущают всякие непонятности в коде, если его использовать просто так (типа private function)
__________________
Самый великий программер - БОГ!

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

Регистрация: Sep 2002
Сообщений: 30,787
http://www.flash-ripper.com/archives/000304.htm

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

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

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


 


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


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