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

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

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

Регистрация: Nov 2005
Сообщений: 148
По умолчанию greenshok ThrowPropsPlugin - как эта штука работает?

Поставил ThrowPropsPlugin, не могу понять суть работы, зачем а примерах лишний код. Вот это работает, но не могу понять, за что какие параметры отвечают:
Код AS3:
import com.greensock.*;
import flash.events.MouseEvent;
import com.greensock.plugins.*;
import com.greensock.easing.*;
import flash.geom.Rectangle;
import flash.utils.getTimer;
import flash.display.*;
TweenPlugin.activate([ThrowPropsPlugin]);
 
var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
var t1:uint, t2:uint, t3:uint, t4:uint, x1:Number, x2:Number, y1:Number, y2:Number;
mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
 
function mouseDownHandler(event:MouseEvent):void {
 TweenLite.killTweensOf(mc);
 y1 = y2 = mc.y;
 x1 = x2 = mc.x;
 t1 = t2 = t3 = t4 = getTimer();
 mc.startDrag(false, new Rectangle(bounds.x-99999, bounds.y-99999, 999999, 999999));
 mc.stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
 
function mouseUpHandler(event:MouseEvent):void {
 mc.stopDrag();
 mc.stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
 
 var gT=getTimer();
 var timeY:Number = (gT - t2) / 1000;
 var timeX:Number = (gT - t3) / 1000;
  trace("gT("+gT+")-t2("+t2+")/1000="+timeY);
 var yVelocity:Number = int((mc.y - y2) / timeY);
 var xVelocity:Number = int((mc.x - x2) / timeX);
 trace("mc.y("+mc.y+")-y2("+y2+")=yVelocity("+yVelocity+")");
 var yOverlap:Number = Math.max(0, mc.height - bounds.height);
 var xOverlap:Number = Math.max(0, mc.width - bounds.width);
 ThrowPropsPlugin.to(mc, {ease:Strong.easeOut, throwProps:{
		y:{velocity:yVelocity, max:bounds.top, min:bounds.top - yOverlap, resistance:100}, 
		x:{velocity:xVelocity, max:bounds.left, min:bounds.left - xOverlap, resistance:100}}}, 10, 0.25, 1);
}
Ну и мувик с контентом

Усё ) Он просто вычисляет скорость движения мыши и в заданом пределе перемещает по инерции, далее возврат на место обычным TweenLite-ом


Последний раз редактировалось zerAlex2; 05.08.2012 в 12:17.
Старый 05.08.2012, 12:24
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 2  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
http://code.google.com/p/mobileui-as...sPlugin.as?r=2

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

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

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


 


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


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