okay i've tried everything i can find in the book re: this problem and
it doesn't seem to be having any affect
i've tried the mouseChildren option (commented out) and useCapture
tomfoolery (seems to be firing in the CAPTURING_PHASE as that's the
only one i can get any result from) and i've also tried separating the
graphic elements from the container displayobject to get rid of any
code wierdness. I've even tried putting the solid block on top of the
text and applying the event to that but none of it has worked.
here is my code (with eventphase extra bits in place):
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;
var pbY:int = pbYStart + pbGetY(dateStart, dateEnd) *
(pbHeight+pbSpace);
var pbcontainer:MovieClip = new MovieClip();
var pb:Shape = new Shape();
if (uint(dateEnd-dateStart) > 1)
{
pb.graphics.beginFill(0xFFFFFF,.3);// white 50% alpha
pb.graphics.drawRoundRect(0,0,pbWidth,pbHeight,pbHeight);
pb.graphics.endFill();
pbcontainer.x = pbX;
pbcontainer.y = pbY;
var pbText:SimpleTextField = new
SimpleTextField(0xFFFFFF, 14, headingFont, 4, -2, pbWidth-4, 25,
pbTitle, false);
pbText.selectable = false;
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);
pbcontainer.addChild(pbText);
pbcontainer.addChild(pb);
//pb.mouseChildren = false; //
} else
{
pb.graphics.beginFill(0xFFFFFF,.5);// white 50% alpha
pb.graphics.drawCircle(0,0,pbHeight/2);
pb.graphics.endFill();
pbcontainer.x = pbX;
pbcontainer.y = pbY+(pbHeight/2);
pbcontainer.addChild(pb);
}
pbcontainer.rolloverText = pbTitle + "\n" + pbDate;
pbcontainer.addEventListener(MouseEvent.CLICK,
pbMouseOverListener, true); // changed to click to make it easier to
track
scrollableBase.addChild(pbcontainer);
}
private function pbMouseOverListener(e:MouseEvent):void
{
if (e.eventPhase == EventPhase.CAPTURING_PHASE)
{
mfTextField.text = e.target.rolloverText;
trace (e.target.rolloverText);
mouseFollower.visible = true;
}
}
really hope you can help because i'm stumped (and it's 12.15 am ;) )
a
On 31 Mar 2008, at 23:20, Allandt Bik-Elliott (Receptacle) wrote:
i have the moock book but i couldn't get my head round the bubbling
phase and how it affected me - i need to look into it a bit more
i added mouseChildren=false but it made the entire event stop - even
on the objects that were working before, and i didn't even get the error
is this because i've drawn directly in the sprite?
here's what i did:
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;
var pbY:int = pbYStart + pbGetY(dateStart, dateEnd) *
(pbHeight+pbSpace);
var pb:MovieClip = new MovieClip();
if (uint(dateEnd-dateStart) > 1)
{
pb.graphics.beginFill(0xFFFFFF,.3);// white 50% alpha
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;
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);
pb.mouseChildren = false;
/////////////////////////////////////////////////////////////<<<<<<<<<<<<<<<<<<<<<<---------------------------------
HERE
} else
{
pb.graphics.beginFill(0xFFFFFF,.5);// white 50% alpha
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, true);
scrollableBase.addChild(pb);
}
thanks for your input so far
a
On 31 Mar 2008, at 22:30, Steven Sacks wrote:
IMO, explaining Event Bubbling as the reason the TextField is the
target is complicating the immediate solution he needs, which is
mouseChildren = false.
Yes, it's Event Bubbling that's causing the target to be the
TextField. To understand Event Bubbling, read about it in the docs,
or better yet, in a book (like Moock's). But, then you MUST do it
yourself to learn how it works. If you don't play with it yourself,
you will never "get it" no matter how much somebody explains it to
you. I'm fully convinced of that. You gotta mess around with it to
fully understand why it's so amazingly awesome.
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders