Hey guys,
                      so I have created a simple flex proj
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" themeColor="#0EFF02">
<mx:Script>
<![CDATA[
private function onOver(evt:Event):void{
trace("onOver : " +evt.currentTarget );
test.setStyle("backgroundColor",0xff00ff);
}

private function onOut(evt:Event):void{
trace("onOut : " +evt.currentTarget );
test.setStyle("backgroundColor",0xffff00);
}
]]>
</mx:Script>
<mx:Canvas id="test"  x="118" y="136" width="443" height="133"
themeColor="#099FFF" backgroundColor="#D70000" rollOver="onOver(event);"
rollOut="onOut(event);">
<mx:Button x="39" y="35" label="Button"/>
</mx:Canvas>
</mx:Application>


So basically all the code above does is changes the backgroundColor of
the Canvas. It works fine
Now if I make a MXML Component using the Code Behind Method














<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" themeColor="#0EFF02" xmlns:ns1="item.*">
<ns1:ListItem x="80" y="48"/>
</mx:Application>




ListItem.mxml
<item:CListItem xmlns:mx="http://www.adobe.com/2006/mxml"; width="400"
height="300" xmlns:item="item.*">
<mx:Button x="65" y="61" label="Button"/>
</item:CListItem>











CListItem.as
package item
{
import flash.events.MouseEvent;
import mx.containers.Canvas;
import mx.events.FlexEvent;

public class CListItem extends Canvas
{
public function CListItem()
{
super();
this.addEventListener(FlexEvent.CREATION_COMPLETE, onComponentLoaded);
}

private function onMouseOver(evt:MouseEvent):void{
trace("CListItem.onMouseOver :");
this.setStyle("backgroundColor",0xff00ff);
}

private function onMouseOut(evt:MouseEvent):void{
trace("CListItem.onMouseOut");
this.setStyle("backgroundColor",0xffff00);
}

private function onComponentLoaded(evt:FlexEvent):void{
this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
}
}



Now when I mouse over the Button component the onMouseOut function gets
called and there is a flicker in the backgroundColor.
If I dont use the Code Behind Method then the onMouseOut function does
not get called when I rollOver the button.

Can anyone explain this strange behavior?
Thanks

Cheers
Firdosh



 

Reply via email to