below is the code that i am using. maybe this will help you see what
i'm trying to do, and help how i should be properly stopping the Move
Effect for UI components which are dynamically created at runtime.
Thanks!
public function initApp:void() {
//for each element in an ArrayCollection which was retrieved from a
HTTPService
//get the element, create a new custom MXML component
var uiobj:MyCustomMXMLComponent = new MyCustomMXMLComponent();
this.canvas.addChild(uiobj);
uiobj.lblTitle = "some title that i get from the array collection";
uiobj.txaBrief = "some more text i get from the array collection";
//add Move Effect to the ui obj to move it on the canvas.
moveObj(uiobj);
}
public static function moveObj(obj:UIComponent):void {
var mv:Move = new Move(obj);
mv.xBy = -(500);
mv.duration = 10000;
mv.play();
//add event listner to listen for mouse rollover event.
obj.addEventListener(MouseEvent.MOUSE_OVER, handleMouseRollOver);
obj.addEventListener(MouseEvent.MOUSE_OUT, handleMouseRollOut);
}
private static function handleMouseRollOver(event:MouseEvent):void {
if(event.target.parent.parent.activeEffects[0])
event.target.parent.parent.activeEffects[0].pause();
else if(event.target.parent.activeEffects[0])
event.target.parent.activeEffects[0].pause();
}
private static function handleMouseRollOut(event:MouseEvent):void {
event.target.parent.parent.activeEffects[0].resume();
}
------------------------------------------------------------------------\
--------------
MyCustomMXMLComponent.mxml
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off">
<mx:Label id="lblTitle" text="DEFAULT TEXT TITLE" />
<mx:TextArea id="txaBrief" text="DEFAULT BRIEF TEXT" visible="true"
color="#c0c0c0" />
</mx:VBox>
--- In [email protected], "devenhariyani" <[EMAIL PROTECTED]>
wrote:
>
> Hello,
>
> I'm struggling on wrapping my mind around the best way to architect a
> particular feature i am developing. i have gotten my code to work,
> but i want to improve it to make it work using a more stable and
> scaleble design.
>
> QUESTION: Now, the problem is when a user rolls the mouse over a
> custom MXML compoenent which already has a Move effect applied to it,
> I want the MXML component to stop moving. The custom MXML component
> has a Label, Text Area,and other components inside of it, but the
> mouse roll over Event is caught by the inner most UITextField
> component. Inside the Event Handler i have a very hacky way to stop
> the Move Effect:
>
> event.target.parent.parent.activeEffects[0].pause();
>
> 1. how do i make the custom MXML component catch the event instead of
> the UITextField buried deep inside the component
>
> 2. how do i reference the MoveEffect for the MXML component without
> having to use parent.parent.activeEffects[0] since that is basically
> hardcoding.
>
> Any help would be greatly appreciated. For more information on my
> situation, i've posted some info:
>
> GOAL: the feature is simple, i have a custome MXML component that has
> a Label and a TextArea field inside of a Canvas. My flex application
> makes HttpService to my server and returns data which i put into an
> ArrayCollection. for each element in the ArrayCollection initialize
> a new custom MXML component, I bind it to my custom MXML component
> which i initialize and apply an effect to the MXML component so that
> the component moves across the screen in various places. The
> component should stop moving when a user rolls his/her mouse over the
> component.
>
>
> Thanks for all of your help!
>
> --Deven
>