Hi Sean:

Yep. Three-up - three-down. You nailed them all.

Thanks!

Ted.

--- In [email protected], "Sean Clark Hess" <[EMAIL PROTECTED]> wrote:
>
> Hi Ted.
> 
> 1. Oh, right... the mouse events bubble, so they are fired not only
for your
> components, but for whatever you actually clicked on underneath it.  It
> looks like I used event.currentTarget instead of event.target.  Can you
> trace (event.target) and see if it is actually the component you wanted?
> 
> 2. Try fixing 1 and seeing if that fixes
> 
> 3. You needed to import flash.display.Spirte;  Google "flex 3 language
> reference".  you can find everything there.  The only reason I used
sprite
> was because that was the class that defines startDrag.  Normally, if
all the
> components were the same (all of type ComponentA), I would do
> event.currentTarget as ComponentA, since that's more specific. 
Since all
> flex components are UIComponents, which are sprites, they all have the
> startDrag event.  you would have to import your ComponentA though.  You
> could have done event.currentTarget as UIComponent just as easily
(import
> mx.core.UIComponent).
> 
> 
> 
> On Wed, Jul 2, 2008 at 2:36 PM, edlueze <[EMAIL PROTECTED]> wrote:
> 
> >   Thanks Sean!
> >
> > I've only just started playing with your suggestion - it seems to work
> > fine but there are some things I'm going to need to dig into before I
> > fully understand what's going on:
> >
> > 1. Not only do my components drag around fine, but the components
> > *within* those components now also drag around. Interesting, but not
> > what I expected. I'm going to have to figure out how to lock those
> > internal parts of the component.
> >
> > 2. There is some text that I'm displaying within the components. It
> > appears that this text is not allowed to be dragged, and when I click
> > on the text to drag it an error is thrown.
> >
> > 3. I now need to add an additional line of code "import
> > flash.display.*". I didn't need that before - presumably I need it now
> > to cast the component into a Sprite. Not sure which part of
> > flash.display.* I actually need.
> >
> > All the best!
> >
> > Ted.
> >
> >
> > --- In [email protected] <flexcoders%40yahoogroups.com>,
"Sean
> > Clark Hess" <seanhess@> wrote:
> > >
> > > Yes, use event.target.
> > >
> > > private function onMouseDown(event:MouseEvent):void
> > > {
> > > (event.target as Spirte).startDrag();
> > > }
> > >
> > > The reason why your last two things don't work is because, unlike
> > > javascript, "this" and "id" would refer to the parent component
> > (e.g. the
> > > file you are currently editing). So, if you want to pass "id" you
> > have to
> > > pass "ComponentCId.id" (like you did in #2). Or, if you want to
> > pass "this"
> > > you have to pass "ComponentDId"
> > >
> > > This way is very consistent... this always just refers to the
file your
> > > working in. It's always easy to drill down anyway.
> > >
> > >
> > >
> > > On Wed, Jul 2, 2008 at 1:18 PM, edlueze <edlueze@> wrote:
> > >
> > > > I am trying to refer to the id field for an mxml component from
> > within
> > > > that component so I can pass it back to some actionscript.
> > > >
> > > > Consider this example: I want to be able to drag components
around a
> > > > panel by calling mouseDown/mouseUp from within the mxml component
> > > > definition. The first two components work (ComponentA and
ComponentB)
> > > > but the second two components don't work (ComponentC and
ComponentD).
> > > >
> > > > Being able to reference the component id from within the mxml
> > > > component provides a little more scalability. Perhaps there is a
> > > > better way altogether?
> > > >
> > > > <mx:Script>
> > > > <![CDATA[
> > > >
> > > > private function onMouseDown(event:MouseEvent, myid:String ):void
> > > > {
> > > > this[myid].startDrag();
> > > > }
> > > >
> > > > private function onMouseUp(event:MouseEvent, myid:String ):void
> > > > {
> > > > this[myid].stopDrag();
> > > > }
> > > > ]]>
> > > > </mx:Script>
> > > >
> > > > <!-- This works -->
> > > > <component:ComponentA
> > > > id="ComponentAId"
> > > > mouseDown="onMouseDown(event,'ComponentAId')"
> > > > mouseUp="onMouseUp(event,'ComponentAId')"/>
> > > >
> > > > <!-- And this works -->
> > > > <component:ComponentB
> > > > id="ComponentBId"
> > > > mouseDown="onMouseDown(event,ComponentBId.id)"
> > > > mouseUp="onMouseUp(event,ComponentBId.id)"/>
> > > >
> > > > <!-- But this doesn't work -->
> > > > <component:ComponentC
> > > > id="ComponentCId"
> > > > mouseDown="onMouseDown(event,id)"
> > > > mouseUp="onMouseUp(event,id)"/>
> > > >
> > > > <!-- And this doesn't work -->
> > > > <component:ComponentD
> > > > id="ComponentDId"
> > > > mouseDown="onMouseDown(event,this)"
> > > > mouseUp="onMouseUp(event,this)"/>
> > > >
> > > >
> > > >
> > >
> >
> >  
> >
>


Reply via email to