[Laszlo-checkins] r12201 - openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9

bargull@openlaszlo.org bargull at openlaszlo.org
Fri Dec 19 03:07:00 PST 2008


Author: bargull
Date: 2008-12-19 03:06:56 -0800 (Fri, 19 Dec 2008)
New Revision: 12201

Modified:
   openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
Log:
Change 20081218-bargull-IOO by bargull at dell--p4--2-53 on 2008-12-18 18:43:15
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: mouseover in swf9

New Features:

Bugs Fixed: LPP-7335

Technical Reviewer: max
QA Reviewer: promanik
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:
If you get a mouseover/mouseout event, the sprite must be over the mousedown-sprite. So apparently we only need to store a reference to the last sprite which received a mouseover/mouseout event and defer the event-handling. 
All testcases from LPP-7300 and LPP-7335 work now consistently in swf8 and swf9.
    

Tests:
see LPP-7300 and LPP-7335



Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzSprite.as	2008-12-19 09:00:06 UTC (rev 12200)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzSprite.as	2008-12-19 11:06:56 UTC (rev 12201)
@@ -669,8 +669,8 @@
       }
 
       public function __mouseEvent( e:MouseEvent ) :void {
-            var skipevent = false;
-            var eventname = 'on' + e.type.toLowerCase();
+            var skipevent:Boolean = false;
+            var eventname:String = 'on' + e.type.toLowerCase();
 
             if (eventname == 'onmousedown') {
                 // cancel mousedown event bubbling...
@@ -698,23 +698,20 @@
             // send dragin/out events if the mouse is currently down
             if (LzMouseKernel.__lastMouseDown &&
                 (eventname == 'onmouseover' || eventname == 'onmouseout')) {
-                    // only send mouseover/out if the mouse went down on this sprite - see LPP-6677
+                    // only send mouseover/out/dragin/dragout if the mouse went down on this sprite (LPP-6677, LPP-7335)
                     if (LzMouseKernel.__lastMouseDown === this) {
                         LzMouseKernel.__sendEvent(this.owner, eventname);
+
+                        var dragname:String = eventname == 'onmouseover' ? 'onmousedragin' : 'onmousedragout';
+                        LzMouseKernel.__sendEvent(this.owner, dragname);
                     } else {
-                        // check to see if this sprite is in front of the sprite the mouse went down on.  See LPP-7300
-                        var relObj:InteractiveObject = e.relatedObject;
-                        // relatedObject is the sprite's clickbutton, use parent to access the LzSprite
-                        if (eventname == 'onmouseover' && relObj && relObj.parent === LzMouseKernel.__lastMouseDown) {
-                            // store reference to self for sending onmouseover event later - see LPP-7335
+                        // defer mouse-events until mouse is released (LPP-7300, LPP-7335)
+                        if (eventname == 'onmouseover') {
                             LzMouseKernel.__lastMouseDown.__mouseoverInFront = this;
                         } else {
                             LzMouseKernel.__lastMouseDown.__mouseoverInFront = null;
                         }
                     }
-
-                    var dragname = eventname == 'onmouseover' ? 'onmousedragin' : 'onmousedragout';
-                    LzMouseKernel.__sendEvent(this.owner, dragname);
             } else {
                 LzMouseKernel.__sendEvent(this.owner, eventname);
             }



More information about the Laszlo-checkins mailing list