title: AS3: Type Coercion failed: cannot convert flash.events to flash.events.MouseEvent
body: <p>When I placed this <strong>AddEventListener</strong> I got this "<strong>Type Coercion failed message"</strong></p>
  
  <pre><code>addEventListener(Event.ENTER_FRAME,onEnterFrm);
  </code></pre>
  
  <p>Located above the mouse event:</p>
  
  <pre><code>        addEventListener(Event.ENTER_FRAME,onEnterFrm);
          stage.addEventListener(MouseEvent.CLICK, _clicked);
  </code></pre>
  
  <p>I can't see the relationship in-between that causes the error. </p>
  
  <p><strong>//Clicked Function</strong></p>
  
  <pre><code>         private function _clicked(e:MouseEvent)
       {
          gameBall = sim.addCircle({x:(mouseX/30), y:(1), radius:0.25, density:5});
       }
  </code></pre>
  
  <p><strong>//OnEnterFrn Function</strong></p>
  
  <pre><code>     private function onEnterFrm(e:MouseEvent):void
       {          
          if (gameBall &amp;&amp; gameBall.body.IsSleeping())
              {
                  gameBall.destroy();
                  gameBall = null;
              }  
      }
  </code></pre>
  
  <p>If I hit run, the simulation works but <strong>laggy</strong>, and the <strong>runtime message pops up</strong>:</p>
  
  <pre><code>TypeError: Error #1034: Type Coercion failed: cannot convert flash.events::Event@2a03b2e1 to flash.events.MouseEvent.
  </code></pre>
  
  <p><strong>Full Code:</strong></p>
  
  <pre><code>package  {
  
  import flash.display.MovieClip;
  import com.actionsnippet.qbox.*;  
  import flash.events.MouseEvent;
  import flash.events.Event;
  
  [SWF(width = 600, height = 600, frameRate = 60)]  
  
  public class LuckyHit extends MovieClip {
  
      public var sim:QuickBox2D;
      var winBox:QuickObject;
      var looseBox:QuickObject;
      var gameBall:QuickObject;
      var simContacts:QuickContacts;
  
      /**
       * Constructor
       */
      public function LuckyHit()
      {
          sim = new QuickBox2D(this);
          simContacts = sim.addContactListener();
          simContacts.addEventListener(QuickContacts.ADD, contactListener);
          //sim.createStageWalls();
          winBox = sim.addBox({x:5,y:600/30, width:300/30, height:10/30, density:0});
          looseBox = sim.addBox({x:15,y:600/30, width:300/30, height:10/30, density:0});
  
  
          //buscar fuerza de rebote.
          // make obstacles 
          for (var i:int = 0; i&lt;(stage.stageWidth/50); i++){ 
          //End
               sim.addCircle({x:1 + i * 1.5, y:16, radius:0.1, density:0});
               sim.addCircle({x:2 + i * 1.5, y:15, radius:0.1, density:0});
  
          //Mid End
  
                sim.addCircle({x:0 + i * 2, y:14, radius:0.1, density:0});
                sim.addCircle({x:0 + i * 2, y:13, radius:0.1, density:0});
                sim.addCircle({x:0 + i * 2, y:12, radius:0.1, density:0});
                sim.addCircle({x:0 + i * 2, y:11, radius:0.1, density:0});
                sim.addCircle({x:0 + i * 2, y:10, radius:0.1, density:0});
  
  
          //Middle Start
               sim.addCircle({x:0 + i * 1.5, y:09, radius:0.1, density:0});
               sim.addCircle({x:1 + i * 1.5, y:08, radius:0.1, density:0});
               sim.addCircle({x:0 + i * 1.5, y:07, radius:0.1, density:0});
               sim.addCircle({x:1 + i * 1.5, y:06, radius:0.1, density:0});
  
          }
          addEventListener(Event.ENTER_FRAME,onEnterFrm);
          stage.addEventListener(MouseEvent.CLICK, _clicked);
          sim.start();
  
  
  
      }
  
      /**
       * ..
       * @param e MouseEvent.CLICK
       */
       private function _clicked(e:MouseEvent)
       {
          gameBall = sim.addCircle({x:(mouseX/30), y:(1), radius:0.25, density:5});
       }
  
       private function onEnterFrm(e:MouseEvent):void
       {          
          if (gameBall &amp;&amp; gameBall.body.IsSleeping())
              {
                  gameBall.destroy();
                  gameBall = null;
              }  
      }
  
      private function contactListener(e:Event)
      {
          if (simContacts.isCurrentContact(winBox,gameBall))
          {
              // Won.
              trace ('You won!');
          }
      }
  
  
  }
  </code></pre>
  
  <p>}</p>