A perfect opportunity for someone more eloquent than I to explain event
bubbling.
On Mon, Mar 31, 2008 at 4:17 PM, Allandt Bik-Elliott (Receptacle) <
[EMAIL PROTECTED]> 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
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
--
-jonathan howe :: 404.434.2321 :: 180 High St Apt 26 Portland, ME 04101
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders