From 68be6fbe7d7787d3cb765cb1c9c65d6210eb3eb8 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Tue, 20 Mar 2007 21:21:24 +0000 Subject: [PATCH] Oooh. I had to do the trick of filling in the bounds with transparent pixels so that I'd receive mouse clicks. While contemplating how bitchy to be in my check-in comment, I wondered why I hadn't needed this when the video was hosted inside a MediaContainer. It occurred to me that perhaps the mask was helping, and sure enough: a sprite's mask helps define the bounds of the sprite for mouse event purposes. That's really good to know. I'll have to experiment further. So: set up a mask on the VideoDisplayer, for no other reason than to be informed of mouse events in all cases. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@175 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/as/com/threerings/flash/VideoDisplayer.as | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/as/com/threerings/flash/VideoDisplayer.as b/src/as/com/threerings/flash/VideoDisplayer.as index acc86a6b..1c4c2be5 100644 --- a/src/as/com/threerings/flash/VideoDisplayer.as +++ b/src/as/com/threerings/flash/VideoDisplayer.as @@ -21,6 +21,7 @@ package com.threerings.flash { +import flash.display.Shape; import flash.display.Sprite; import flash.events.AsyncErrorEvent; @@ -58,6 +59,10 @@ public class VideoDisplayer extends Sprite _vid = new Video(); addChild(_vid); + _mask = new Shape(); + this.mask = _mask; + addChild(_mask); + addEventListener(MouseEvent.ROLL_OVER, handleRollOver); addEventListener(MouseEvent.ROLL_OUT, handleRollOut); @@ -133,6 +138,16 @@ public class VideoDisplayer extends Sprite // set up the width/height _vid.width = _vid.videoWidth; _vid.height = _vid.videoHeight; + + // set up our mask to be the size of the video so that we're + // guaranteed to get the mouse clicks + with (_mask.graphics) { + clear(); + beginFill(0xFFFFFF); + drawRect(0, 0, _vid.videoWidth, _vid.videoHeight); + endFill(); + } + redrawPauser(); // tell any interested parties @@ -275,6 +290,9 @@ public class VideoDisplayer extends Sprite protected var _vid :Video; + /** Our mask, also defines our boundaries for clicking. */ + protected var _mask :Shape; + protected var _paused :Boolean = false; protected var _netCon :NetConnection;