Try setting mouseChildren to false
Kenneth Kawamoto
http://www.materiaprima.co.uk/
Allandt Bik-Elliott (Receptacle) wrote:
hi guys
in actionscript 3, if i put a mouse event on a movieclip object
containing a textfield, should the mouse event be on the movieclip or
the textfield?
here's my code (comments added to see where the problem is occurring)
CODE
private function createPeriodBar(dateStart:int, dateEnd:int,
pbTitle:String, pbDate:String, pbList:Array = null):void
{
var pixelStart:int = yearsToPixels(dateStart);
var pixelEnd:int = yearsToPixels(dateEnd);
var pbX:int = pixelStart;
var pbWidth:int = pixelEnd - pixelStart;
var pbYStart:int = taTitleBarHeight + pbSpace; // sets the
starting point for all periodBars
var pbY:int = pbYStart + pbGetY(dateStart, dateEnd) *
(pbHeight+pbSpace); // pbGetY is a separate function that automatically
stacks the periodBars where they will fit without overlapping
var pb:MovieClip = new MovieClip(); // was a sprite but
sprites cannot have strings attached to them, eg my rolloverText variable
if (uint(dateEnd-dateStart) > 1) // if the difference
between the start and end dates is more than 1
{
pb.graphics.beginFill(0xFFFFFF,.3);
pb.graphics.drawRoundRect(0,0,pbWidth,pbHeight,pbHeight);
pb.graphics.endFill();
pb.x = pbX;
pb.y = pbY;
var pbText:SimpleTextField = new
SimpleTextField(0xFFFFFF, 14, headingFont, 4, -2, pbWidth-4, 25,
pbTitle, false);
pbText.selectable = false; // tried making this
non-selectable but it hasn't helped
pbText.text += " ";
pbText.text += pbDate;
var pbf:TextFormat = new TextFormat();
pbf.font = subheadingFont;
pbf.size = 10;
var pbCurrentLength = pbTitle.length+1;
var pbDateLength = pbText.length;
pbText.setTextFormat(pbf, pbCurrentLength, pbDateLength);
pb.addChild(pbText);
} else {
// will create a dot instead of a box containing text if
it will otherwise be too small to render a roundrect
pb.graphics.beginFill(0xFFFFFF,.5);
pb.graphics.drawCircle(0,0,pbHeight/2);
pb.graphics.endFill();
pb.x = pbX;
pb.y = pbY+(pbHeight/2);
}
pb.rolloverText = pbTitle + "/n" + pbDate;
pb.addEventListener(MouseEvent.MOUSE_OVER,
pbMouseOverListener);
scrollableBase.addChild(pb);
}
private function pbMouseOverListener(e:MouseEvent):void
{
mfTextField.text = e.target.rolloverText; // mfTextField is
a textfield within a mousefollower
trace (e.target); // traces simpleTextField if over a
movieclip with a simpletextfield in otherwise traces movieclip
trace (e.target.rolloverText); // gives error when over a
simpletextfield but works properly when over a movieclip without, eg
where the dates are too close and a dot is rendered instead
mouseFollower.visible = true;
}
because the movieclip isn't always the target (even tho i've set the
mouseevent on the movieclip), i can't consistently get a reading from
rolloverText (because it's trying to find the variable rolloverText in
the pbText SimpleTextField)
can anyone explain why this is and what i can do to get around it please?
thanks a lot
a
Allandt Bik-Elliott
thefieldcomic.com
e [EMAIL PROTECTED]
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders