[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