topical media & game development
actionscript-misc-WordHighlighter.ax
actionscript-misc-WordHighlighter.ax
[swf]
flex
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
public class @ax-actionscript-misc-WordHighlighter extends Sprite {
// The first word
private var word1:Sprite;
private var text1:TextField;
// The second word
private var word2:Sprite;
private var text2:TextField;
// The highlight shape
private var bgRect:Shape;
public function @ax-actionscript-misc-WordHighlighter () {
// Create the first TextField and Sprite
word1 = new Sprite();
text1 = new TextField();
text1.text = "Products";
text1.selectable = false;
text1.autoSize = TextFieldAutoSize.LEFT;
word1.addChild(text1)
text1.addEventListener(MouseEvent.MOUSE_OVER, mouseOverListener);
text1.addEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
// Create the second TextField and Sprite
word2 = new Sprite();
text2 = new TextField();
text2.text = "Services";
text2.selectable = false;
text2.autoSize = TextFieldAutoSize.LEFT;
word2.x = 75;
word2.addChild(text2)
text2.addEventListener(MouseEvent.MOUSE_OVER, mouseOverListener);
text2.addEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
// Add the Sprite instances to @ax-actionscript-misc-WordHighlighter's display hierarchy
addChild(word1);
addChild(word2);
// Create the Shape (a rounded rectangle)
bgRect = new Shape();
bgRect.graphics.lineStyle(1);
bgRect.graphics.beginFill(0xCCCCCC, 1);
bgRect.graphics.drawRoundRect(0, 0, 60, 15, 8);
}
// Invoked when the mouse pointer moves over a text field.
private function mouseOverListener (e:MouseEvent):void {
// If the TextField's parent Sprite does not already contain
// the shape, then move it there. DisplayObjectContainer.contains()
// returns true if the specified object is a descendant
// of the container.
if (!e.target.parent.contains(bgRect)) {
e.target.parent.addChildAt(bgRect, 0);
}
}
// Invoked when the mouse pointer moves off of a text field.
private function mouseOutListener (e:MouseEvent):void {
// If the highlight is present...
if (e.target.parent.contains(bgRect)) {
// ...remove it
e.target.parent.removeChild(bgRect);
}
}
}
}
(C) Æliens
27/08/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.