Переход между двумя изображениями - PullRequest
0 голосов
/ 16 марта 2011

Я разрабатываю приложение ActionScript 3.0 для Blackberry Playbook.

Я использую Класс загрузчика , чтобы показать изображение.

Я хочу показать другое изображениеТам же, когда пользователь нажимает на это изображение.

Как я могу это сделать?Я хотел бы сделать переход между этими двумя изображениями.Второе изображение перейдет с 0 альфа на 100 альфа.

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Все зависит от того, какой переход вы хотите сделать.Для простейшей альфы вы можете воспользоваться механизмом Tweener, как предложил irot, или сделать что-то простое самостоятельно.

Простой : в основном, когда вы нажимаете на изображение, загружаетеследующий (или уже загружен).Запустите прослушиватель enterframe, чтобы загрузить его.Что-то вроде:

// we're assuming that "image2" is the second image and it has an alpha
// of 0.0 and visible of false. "image1" is the first image and currently 
// on stage

// the on click handler for the image
private function _onImageClick( e:MouseEvent ):void
{
    // add a enter frame to the stage - I'm going to assume you
    // have access through this.stage
    this.stage.addEventListener( Event.ENTER_FRAME, this._onEnterFrame );

    // make our second image visible so we can fade it up
    this.image2.visible = true;
}

// called every frame
private function _onEnterFrame( e:Event ):void
{
    // image2 is the second image
    this.image2.alpha += 0.05; // slow fade

    if( this.image2.alpha >= 1.0 )
    {
        this.image2.alpha = 1.0;

        // hide the first image
        this.image1.alpha = 0.0;
        this.image1.visible = false;

        // remove the enter frame event listener
        this.stage.removeEventListener( Event.ENTER_FRAME, this._onEnterFrame );
    }
}

Немного сложнее : Проверьте класс BitmapData и его функции merge() или pixelDisolve(): http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html

1 голос
/ 16 марта 2011

Вы знакомы с любыми двигателями Tween? Я бы порекомендовал TweenLite , если вы не.

Обычно я загружаю все изображения, которые планирую использовать, а затем складываю два или более из них там, где я хочу. Только одно из этих изображений будет видно в любое время (альфа = 1).

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

  • Поверните альфа видимого изображения до 0, затем обработчик onComplete превратит альфу вашего следующего изображения до 1
  • В качестве альтернативы, вы можете запустить сразу две анимации. Один из них может изменить анимацию видимого изображения до 0, другой - анимацию следующего изображения до 1

irot

...