Hey,

I ran your code and I could reproduce the error you got. It seems like
a bug in the SetEventHandler code. However, if you add the initial
event listener in actionscript, it all works fine.

        private function init():void
        {
                trace(document.toString());
                bt.addEventListener("change", onClick1);
        }

- venkat
http://www.venkatj.com


--- In [email protected], "mydarkspoon" <[EMAIL PROTECTED]> wrote:
>
> Hi,
> 
> I encountered an error using the SetEventHandler and made a simple
> test case to see what was the problem:
> In my app I have a component that contains button and dispatches a
> "goPrevious" event when the component::button is clicked.
> Following the "goPrevious" event, the main app changes its state.  The
> new state uses the SetEventHandler to change the "goPreviousHandler":
> 
> My main app:
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="absolute" xmlns:local="*" creationComplete="init()">
>       <mx:Script>
>               <![CDATA[
>                       import mx.controls.Alert;
>                       
>                       private function init():void
>                       {
>                               trace(document.toString());
>                       }
>                       private function onClick1(evt:Event):void
>                       {
>                               Alert.show("chnaging from state 1 to state 2");
>                               currentState = "myState"
>                       }
>                       
>                       private function onClick2(evt:Event):void
>                       {
>                               Alert.show("state 2");
>                       }
>               ]]>
>       </mx:Script>
>       
>       <mx:states>
>               <mx:State name="myState">
>                       <mx:SetProperty target="{bt}" name="alpha" value="0.2" /
>                       <!--<mx:SetEventHandler target="{bt}" 
> handlerFunction="onClick2"
> name="goPrevious" /> -->
>               </mx:State>
>       </mx:states>
>       <local:MyButton id="bt" goPrevious="onClick1(event)" />
>       <!--<mx:Button id="bt" click="onClick1()"  /> -->
> </mx:Application>
> 
> ---------------------------------------------------------------
> The Component:
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"; width="100"
> height="100" 
>       click="onClick()" creationPolicy="auto" >
> <mx:Metadata>
>       [Event(name="goPrevious", type="events.NavigationEvent")]
> </mx:Metadata>
> 
> <mx:Script>
>       <![CDATA[
>               import events.NavigationEvent;
>               
>               private function onClick():void
>               {
>                       dispatchEvent(new 
> NavigationEvent(NavigationEvent.GO_PREVIOUS));
>               }
>       ]]>
> </mx:Script>
>       <mx:Button label="previous" click="onClick()" />
> </mx:VBox>
> 
> 
> 
> And this is the error you get from the SetEventH/handler object:
> 
> ReferenceError: Error #1069: Property __bt_goPrevious not found on
> MyButton and there is no default value.
>       at mx.states::SetEventHandler/apply()
> 
> 
> It seems that inside the SetEventHandler.apply() function it can't
> find the oldHandlerFunction.
> 
> 
> I'm struggling this bug for hours now and been goggling it a lot, yet
> nothing useful was found...
> 
> I'd be grateful if anyone take a look at that.
> 
> Thanks in advance, 
> Almog Kurtser
>


Reply via email to