1 Reply Latest reply on Sep 29, 2006 9:03 AM by FlashBugKiller

    BUG - TransitionManager.as Squeeze

    FlashBugKiller
      Hello everybody,

      first of all - sorry for my bad english :)

      well i think i found a bug in the TransitionManger.as Class File -
      Let's go through the script and the problem occurs running the script with the "Squeeze" Transition.

      Look at this AS script:

      import mx.transitions.*;
      import mx.transitions.easing.*;

      var tm:TransitionManager = new TransitionManager(mc);

      trace(tm.content)

      tm.startTransition({type:Squeeze, direction:Transition.OUT, duration:2, easing:Elastic.easeOut, dimension:1});

      var obj2:Object = new Object();

      obj2.allTransitionsOutDone = function(eventObj:Object) {
      trace(eventObj.type)
      trace("allTransitionsOutDone");
      }
      tm.addEventListener("allTransitionsOutDone",obj2);

      stop();

      I think i haven't to explain the code above.
      What happens or better what does not happen. The Call Back function "allTransitionsOutDone" isn't fired when the transition ends.

      Now lets have a look at the code comming with the TransitionManager Class in the TransitionManager.as:

      function transitionOutDone (e:Object):Void {
      this.removeTransition (e.target);
      if (this.numOutTransitions == 0) {
      // return content to its original _x, _xscale, _rotation, etc.
      this.restoreContentAppearance();

      var wasVisible:Boolean;
      wasVisible = this._content._visible;

      // hide the content when all out transitions are done
      if (wasVisible && ((_triggerEvent == "hide") || (_triggerEvent == "hideChild"))) {
      this._content._visible = false;
      }
      updateAfterEvent();

      if (wasVisible) {
      // Fix bug 58135
      // Don't send allTransitionsOutDone if content was
      // hidden before the transitions actually finished.
      this.dispatchEvent ({type:"allTransitionsOutDone", target:this});
      }
      }
      }

      First thing: Waht is this and where can i find some infos about ... Fix bug 58135 ??

      If i use the debugger and look up the visible state of the mc which is squeezed it will be switcht from true to false and stops at false. so the Call Back and the if statement if (wasVisible) could not work. !?

      I hope i could explain what i mean and perhaps you gonna try it out and someone can give some ideas or solve the problem.

      Thanks a lot for reading.

      greets

        • 1. Re: BUG - TransitionManager.as Squeeze
          FlashBugKiller Level 1
          ok now ... forgett the bug and all these stupid things i wrote ...

          thats the solution ...

          import mx.transitions.*;
          import mx.transitions.easing.*;

          var tm:TransitionManager = new TransitionManager(mc);

          tm.startTransition({type:Zoom, direction:true, duration:2, easing:Elastic.easeOut, dimension:1});
          tm.transitionOutDone = function(){
          trace("HELLO WORLD");
          }

          hm thats all and it works fine - i think

          greets