AS3 Сделать так, чтобы мувиклип исчезал, если его оставить в покое на определенное время

Исходное редактирование Я хочу знать, как лучше всего сделать так, чтобы мувиклип исчезал на сцене. Я могу догадаться, как это сделать в as2 (это то, чему меня учили), но я не уверен, как разработать мой код ниже. В качестве предположения я бы предположил, что нужно прикрепить его к событию enterFrame.

По сути, в течение 5 секунд, если пользователь не взаимодействует с воздушным шаром, он исчезает с помощью альфы.

Любые указатели или предложения? Я новичок в AS3. (пожалуйста, игнорируйте ЩЕЛЧОК)

reset_balloon.addEventListener(MouseEvent.CLICK, fadeBalloon);
 function fadeBalloon(event:MouseEvent):void 
 { 
    reset_balloon.alpha = .2; 
 } 

Вторичное редактирование -----

//---- 
//Resetter btn ---------------------
//------------------------------------------

reset_btn.addEventListener(MouseEvent.CLICK, startover);

 function startover(event:MouseEvent):void
  {
   //gotoAndPlay(2);
   reset_balloon.visible = true;
  }

  //---- 
Object(root).reset_balloon.thereseter_btn.addEventListener(MouseEvent.CLICK, truestartover);

  function truestartover(event:MouseEvent):void
  {
     gotoAndPlay(2);
   //reset_balloon.visible = false;
  }


  TweenLite.delayedCall(5, handleTimeUp)

   function handleTimeUp():void
   {
    TweenLite.to(reset_balloon, 2, {alpha:0});
   }

   reset_balloon.addEventListener(MouseEvent.CLICK, fadeBalloon);

    function fadeBalloon(event:MouseEvent):void 
     { 
     //reset_balloon.alpha = .5; 
  TweenLite.killDelayedCallsTo(handleTimeUp);
  TweenLite.to(reset_balloon, 2, {alpha:0.4});
    }

person user3082874    schedule 04.02.2014    source источник


Ответы (1)


Если вы не возражаете против использования Tweens, я бы порекомендовал для этого TweenLite.

//Add function called in 5 secs
TweenLite.delayedCall(5, handleTimeUp)

private function handleTimeUp():void
{
    TweenLite.to(reset_balloon, 2, {alpha:0});
}

И если по какой-то причине вы хотите убить ожидающий вызов задержки (например, по щелчку мыши);

reset_balloon.addEventListener(MouseEvent.CLICK, fadeBalloon);
private function fadeBalloon(event:MouseEvent):void
{
    TweenLite.killDelayedCallsTo(handleTimeUp);
}
person 3vilguy    schedule 04.02.2014
comment
вместо использования TweenLite.delayedCall() для задержки срабатывания анимации движения вы также можете заменить его обычным объектом Timer. Затем каждый раз, когда пользователь взаимодействует с воздушным шаром, вы можете сбросить таймер, чтобы снова начать отсчет с 0 (я недостаточно знаком с TweenLite, чтобы знать, предлагает ли он этот метод «сброса»). - person mitim; 04.02.2014
comment
Вы можете killDelayedCallsTo и еще раз добавить delayedCall. - person 3vilguy; 04.02.2014
comment
Здравствуйте, оба звучат интересно, хотя я больше знаком с анимацией. Что такое твин лайт? Чему это служит? - person user3082874; 05.02.2014
comment
Посетите веб-страницу: TweenLite – легкий и БЫСТРЫЙ механизм анимации. - person 3vilguy; 05.02.2014
comment
Привет, да, выглядит отлично! Я только что скачал его и добавил в свой проект. У меня сейчас проблема, когда я позволяю ей исчезнуть, она не вернется. Любые идеи или предложения? TweenLite.delayedCall(5, handleTimeUp) function handleTimeUp():void { TweenLite.to(reset_balloon, 2, {alpha:0}); } reset_balloon.addEventListener(MouseEvent.CLICK, fadeBalloon); function fadeBalloon(event:MouseEvent):void { //reset_balloon.alpha = .5; TweenLite.killDelayedCallsTo(handleTimeUp); TweenLite.to(reset_balloon, 2, {альфа:0,4}); } - person user3082874; 05.02.2014
comment
Можете ли вы отредактировать свой основной вопрос и переместить туда этот код? Потому что форматирование комментариев — ерунда. - person 3vilguy; 05.02.2014
comment
Привет 3vilguy - извините за это. Изменения внесены выше. - person user3082874; 07.03.2014