I did file a bug with Adobe. Hopefully it'll be addressed soon.

Interesting that it was encountered in FlashPlayer 9. I don't recall which 
version of 9 I had, but I did not encounter this error until I went to 
FlashPlayer 10.

For my application, it is critical that particular conectMenu items only appear 
when right-clicking on certain display items. Once the mouse moves off of the 
item, that custom item should no longer be available. If there is a better way 
to accomplish this, I would be very interested in exploring it.

-JF
--- In [email protected], "valdhor" <valdhorli...@...> wrote:
>
> I think I know why it crashes (Although it should not crash the browser - it 
> should fail with a Flash null object error. You should file a bug).
> 
> When a right click event happens, a mouse out event happens first (Why? I 
> don't know. Maybe this is a bug too) so your mouseOt function gets called 
> which removes the context menu item. I assume, at this point, that the 
> eventlistener is no longer valid but the event has already fired and is 
> trying to find somewhere to go. This is what causes the crash.
> 
> The moral of this is that you should not remove something willy nilly like 
> this. First make sure you do not need it any more and then remove it.
> 
> 
> --- In [email protected], "valdhor" <valdhorlists@> wrote:
> >
> > Not here. I am still using Flash Player 9.0.124.
> > 
> > 
> > --- In [email protected], "jmfillman" <jmfillman@> wrote:
> > >
> > > Thank you for the follow-up. The blankMenu is actually a left over from 
> > > my actual application and wasn't needed for this sample code.
> > > 
> > > This worked fine in FlashPlayer 9, so must be a bug with 10.
> > > 
> > > JF
> > > 
> > > --- In [email protected], "valdhor" <valdhorlists@> wrote:
> > > >
> > > > I tried your code and it crashes my browser here. I could not find a 
> > > > way to stop that behavior in my (Admittedly short) testing.
> > > > 
> > > > The only thing that jumped out at me was that your blankMenu is a null 
> > > > object as it is never instantiated. Unfortunately, even if it is 
> > > > instantiated, the crashing continues.
> > > > 
> > > > The one question I have is why you are assigning a blank menu on 
> > > > mouseout? There is no reason to do this. If the mouse is no longer over 
> > > > the button, there is no context menu. I would just ignore a mouseout 
> > > > entirely.
> > > > 
> > > > If I get some more time I will have another look. Other that that, 
> > > > maybe someone else has a suggestion.
> > > > 
> > > > 
> > > > Steve
> > > > 
> > > > 
> > > > --- In [email protected], "jmfillman" <jmfillman@> wrote:
> > > > >
> > > > > Any suggestions? Am I doing something wrong?
> > > > > 
> > > > > JF
> > > > > --- In [email protected], "jmfillman" <jmfillman@> wrote:
> > > > > >
> > > > > > The code below causes both IE and Firefox to crash (haven't tried 
> > > > > > others). The problem seems to occure when removing an item from a 
> > > > > > custom context menu. It doesn't even debug, just crashes the 
> > > > > > browser.
> > > > > > 
> > > > > > If I add this one line:
> > > > > > 
> > > > > > menu.customItems.pop();
> > > > > > 
> > > > > > then the browser crashes. If I remove it, if functions as expected.
> > > > > > 
> > > > > > Please help.
> > > > > > 
> > > > > > Sample code below:
> > > > > > 
> > > > > > <?xml version="1.0" encoding="utf-8"?>
> > > > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; 
> > > > > > layout="absolute">
> > > > > >     <mx:Script>
> > > > > >             <![CDATA[
> > > > > >                     import mx.controls.Alert;
> > > > > >                     [Bindable] public var menu:ContextMenu;
> > > > > >                     [Bindable] public var blankMenu:ContextMenu;
> > > > > >                     
> > > > > >                     public function mouseOvr(event:MouseEvent):void 
> > > > > > {
> > > > > >                             menu = new ContextMenu;
> > > > > >                             var addPop:ContextMenuItem = new 
> > > > > > ContextMenuItem("Do Something");
> > > > > >                             
> > > > > > addPop.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, newPop);
> > > > > >                             menu.customItems.push(addPop);
> > > > > >                             myButton.contextMenu = menu;
> > > > > >                     }
> > > > > >                     public function newPop 
> > > > > > (event:ContextMenuEvent):void {
> > > > > >                             Alert.show("Hi");
> > > > > >                     }
> > > > > >                     public function mouseOt(event:MouseEvent):void {
> > > > > >                             myButton.contextMenu = blankMenu;
> > > > > >                             menu.customItems.pop();
> > > > > >                     }
> > > > > >             ]]>
> > > > > >     </mx:Script>    
> > > > > >     <mx:Button x="349" y="189" label="Button" width="101" 
> > > > > > height="41" id="myButton" mouseOver="mouseOvr(event)" 
> > > > > > mouseOut="mouseOt(event)"/>
> > > > > > </mx:Application>
> > > > > >
> > > > >
> > > >
> > >
> >
>


Reply via email to