Эффект переворота AS3, оставляющий след?

#actionscript-3

#actionscript-3

Вопрос:

Я пытаюсь создать что-то с помощью руководства по эффекту переворота от tutplus — http://active.tutsplus.com/tutorials/effects/iphone-page-transition-flash /

Однако моя область отображения намного больше, чем в учебнике, она имеет ширину 900 пикселей. Все работает нормально, за исключением того, что при такой большой ширине он оставляет след. Вы увидите это, когда перевернете его несколько раз.

Кто-то другой опубликовал ту же проблему в комментариях за прошлый год, но никто не ответил.

Кто-нибудь знает решение этой проблемы?

Редактировать:

Вот снимок экрана: http://imageshack.us/f/823/unled2lo.jpg (нажмите, чтобы увеличить)

Передняя часть фиолетовая, а задняя — белая.

Как вы можете видеть, он оставил немного фиолетового цвета, когда страница стала белой.

Я не смог сделать снимок экрана с его переворачиванием, но это еще более очевидно, поскольку страница на самом деле переворачивается, потому что ширина становится узкой, что показывает намного больше того, что осталось на странице.

Комментарии:

1. Как это выглядит? Можете ли вы добавить ссылку на скриншот?

2. привет, alxx, я добавил ссылку на скриншот к своему вопросу. Посмотрите на фиолетовый фрагмент под текстом «с другой стороны».

Ответ №1:

В руководстве, которое вы используете, создается эффект переворачивания с использованием встроенных в Flash tween классов, они абсолютный мусор и очень медленные, если сравнивать с другими классами анимации третьей части. Это может быть причиной следа! У Ли Бримелоу есть отличный видеоурок о том, как сделать именно то, что вам нужно:http://gotoandlearn.com/play.php?id=91 он использует caurina, но я настоятельно рекомендую вам заменить его на tweenLight, пока что лучший анимированный файл, который я когда-либо использовал.

Хорошо, это пошаговое руководство:

1- Загрузите файлы из руководства Ли Бримелоу здесь http://gotoandlearn.com/files/3dflip.zip

2. Загрузите классы tweenLight AS3 здесь:http://www.greensock.com/tweenlite /

3- скопируйте папку com внутри greensock-as3 и вставьте ее в папку 3dflip. Теперь у вас есть все классы анимации, необходимые для вашего переворота!

4- откройте флэш-файл 3dflip.fla и замените исходный код (расположенный в первом кадре) на этот:

 import com.greensock.TweenLite;
import fl.video.*;

con.visible = false;

var flv:FLVPlayback = con.vid.flvp;
flv.addEventListener(VideoEvent.PLAYING_STATE_ENTERED, onStart);

function onStart(e:Event):void
{
    con.visible = true;
    loading.visible = false;
}

con.vid.spin.addEventListener(MouseEvent.CLICK, cl);
con.tclip.spin.addEventListener(MouseEvent.CLICK, cl);

var isTurning:Boolean = false;

function cl(e:Event):void
{
    if(!isTurning)
    {
        TweenLite.to(con, 1, {rotationY:con.rotationY 180, onComplete:function(){isTurning=false;}});
        isTurning = true;
    }
}

addEventListener(Event.ENTER_FRAME, loop);

function loop(e:Event):void
{
    if(con.rotationY > 90 amp;amp; con.rotationY < 270)
        con.addChild(con.tclip);
    else
        con.addChild(con.vid);
    if(con.rotationY >= 360) con.rotationY = 0;
} 
  

Вот и все. Теперь опубликуйте и посмотрите результат. Теперь все, что вам нужно сделать, это заменить видеопроигрыватель нужным контентом!

Ответ №2:

Я бы проверил состояние первой стороны — кажется, что об этом забывают на сцене, когда включается «другая сторона».

Комментарии:

1. в этом есть смысл. мой as3 ограничен, хотя этот урок для меня очень продвинутый. не могли бы вы указать мне на определенную область в коде, с которой можно повозиться?

2. Посмотрите на checkFlip функцию. Правильно отформатируйте его с помощью вкладок (если вы этого еще не сделали), потому что смотреть на это неудобно… Добавьте следы к таким действиям, как «переключить видимость» и «добавлен дочерний элемент», чтобы увидеть, что происходит.

3. Я обновил свой ответ пошаговым руководством о том, что вам нужно сделать! Взгляните.