Update: I ended up solving this by having my widget catch onmouseout and set an onidle delegate to check to see if onmouseover was subsequently called. If it wasn't, that means the mouse went to either an unclickable area or off the canvas entirely, which results in the same action either way for the widget. If all goes well you might see the new widget on Pandora in the not-too-distant future. I rather like it, but I might be biased. ;)
Thanks all for the suggestions and thoughts. -Neil On May 28, 2006, at 6:07 AM, DL wrote: > On 26 May 2006 at 15:05, Neil Mix wrote: > > > Both. Perhaps a good way of defining it is like this: when an > object > > starts receiving mouse events, it receives onmouseover. When it > > stops receiving events (for any reason) it receives onmouseout. So > > if the mouse moves onto A, then over B, then off of B (but still on > > A), > > Some simple ideas .. > > (a) In OpenLaszlo canvas have a canvas background view (id = > "canvas_bg") which is full parent canvas size. All objects now > lie on this canvas_bg. > > (b) Attach mouseover/mouseout methods to this "canvas_bg". > > (c) Keep an "event balance sheet" count per "inner object" in > canvas. This "event balance sheet" should cancel out to zero .. > (unless an event is missed due to fast mouse movements). > > onmouseover - object(s) balance sheet +1 > onmouseout - object(s) balance sheet -1 > > (d) On each mouseover or mouseout of canvas_bg, check the event > balance sheet to see if mouse events have been missed due to mouse > fast tracking. Balance sheet could be aggregate for all objects > (one attribute) or, finer control, for each object (multiple > attributes). > > (e) If this simple approach does not detect missed events then an > extreme measure would be to have > two nested divs in HTML wrapper. Plus some rules for tracking mouse > events. > > One, the main (id="inner_canvas") app. > > The second, the other (id = "outer_canvas") to be full browser size > to capture off "inner_canvas".. > > The "outer_canvas" div (full browser size) has the sole purpose of > capturing mouseout of "inner_canvas" (and perhaps sending a > message to the "inner_canvas" app). > > Just rough ideas in Flash objects alone. Apart from using any > DHTML event management in HTML wrapper. > > I would use SWFObject to embed the two Flash objects, to allow > messages to be passed between div's.. > > DL _______________________________________________ Laszlo-dev mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
