开发者

Convert String into Class for TitleWindow

I don't know if this is possible, I am pulling the names for TitleWindows from my database as strings.

Then from my main application I have to launch the TitleWindow. So in my function I need to convert the name of the TitleWindow which is a String to a Class, because the PopUpManager accepts a Class. Below is my code.

When launching my application and trying to launch the TitleWindow I am getting the error:

Implicit coercion of a value of type String to an unrelated type Class.

I don't want to hard code the name of my popUp in the PopUpManager, that is why I am doing it like this. Any way to work around this开发者_JAVA百科?

public function getScreen(screenName:String):void
{
    var screen_Name:Class = new Class();
    screen_Name = screenName;

    var popUpWindow:TitleWindow = PopUpManager.createPopUp(this, screen_Name, false) as TitleWindow;
    PopUpManager.centerPopUp(popUpWindow);
}


I have had to do something very similar recently. Here is the function I wrote to do it:

    //You have to provice the package signature
    private var viewPackage:String = "org.bishop";

    //In my case, event.type is the name of a class
    var className: String = viewPackage + "." + event.type;
                try{
                    var classRef:Class = getDefinitionByName(className) as Class;

                    viewNavigator.pushView(classRef);               
                }   
                catch(e:ViewError){
                    trace(e.message);
                    logger.debug(e.message);
                }

Note: for the class to be created correctly, you will need to include both an import statement:

import org.bishop.Login;

and also declare a variable of the class in the code as follows:

Login;

otherwise the classes will not be available to be created.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜