Skip to main content
May 4, 2011
Answered

Error #1034: Type Coercion failed: Error in FocusManager

  • May 4, 2011
  • 1 reply
  • 590 views

Hi,

I am using ActionScript 3.0.

Here I want to setFocus on a DisplayObject(flash.display.DisplayObject).

I tried :

                    //var dispObject:DisplayObject;

                    //dispObject = code here to get displayObject;//valid DisplayObject got

                    var focusManager1:FocusManager = dispObject["focusManager"];
                    var component:IFocusManagerComponent = dispObject as IFocusManagerComponent;
                    if(focusManager1 != null && component != null)
                    {
                        focusManager1.setFocus(component);
                    }

But I am getting : Error #1034: Type Coercion failed: cannot convert mx.managers::FocusManager@3881e41 to mx.managers.FocusManager.

This is at line :  var focusManager1:FocusManager = dispObject["focusManager"];

The same code would work if I use mx.core.UIComponent instead of DisplayObject, I guess.

But I am not able to convert DisplayObject to UIComponent (invalid cast).

Can someone please help me.

Thanks,

Pradeep.

This topic has been closed for replies.
Correct answer Kenneth Kawamoto

mx.managers.FocusManager is for Flex Components and does not work with any other objects.

In order to set focus on an InteractiveObject (you cannot set focus on a DisplayObject which is not an InteractiveObject) use stage.focus.

1 reply

Kenneth Kawamoto
Community Expert
Kenneth KawamotoCommunity ExpertCorrect answer
Community Expert
May 4, 2011

mx.managers.FocusManager is for Flex Components and does not work with any other objects.

In order to set focus on an InteractiveObject (you cannot set focus on a DisplayObject which is not an InteractiveObject) use stage.focus.

May 4, 2011

stage.focus=someDisplayObject;

this worked ...Thanks!