Показать сообщение отдельно
Старый 26.08.2007, 16:45
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 18  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Наблюдаем классический вариант "борьба твинов".
Предлагаю такой вариант:
Код:
import mx.transitions.Tween;
import mx.transitions.easing.*;
easeType = Strong.easeOut;
zoomTime = 60;
var t1:Tween = new Tween(a, "_x", easeType, a._x, a._x, 1, false);
var t2:Tween = new Tween(a, "_y", easeType, a._y, a._y, 1, false);
var t3:Tween = new Tween(a, "_xscale", easeType, a._xscale, a._xscale, 1, false);
var t4:Tween = new Tween(a, "_yscale", easeType, a._yscale, a._yscale, 1, false);
 
 
 
function viewFullObject(object)
{
    documentWidth = 550;
    documentHeight = 400;
    space = 20;
    object.swapDepths(this.getNextHighestDepth());
    if (object._width > object._height)
        zoom = (documentWidth - space) / object._width;
    else
        zoom = (documentHeight - space) / object._height;
    x = documentWidth / 2 - (object._width * zoom) / 2 - object._x * zoom;
    y = documentHeight / 2 - (object._height * zoom) / 2 - object._y * zoom;
 
    t1.continueTo(x, zoomTime);
    t2.continueTo(y, zoomTime);
    t3.continueTo(zoom * 100, zoomTime);
    t4.continueTo(zoom * 100, zoomTime);        
}
for (i = 0; i < 20; ++i)
{
    _root.a[i].onRelease = function()
    {
        viewFullObject(this);
    }
}
Только поставьте 31 кадр в секунду - я поставил useSecond в false, соответственно zoomTime = 60 кадров. Это, впрочем, непринципиально, можете юзать секунды.

upd: нет, это принципиально. Я вернул секунды и оно начало дергаться.


Последний раз редактировалось Kikasso; 26.08.2007 в 17:15.