2011-09-21 78 views
0

我不知道這是否可能,我將字符串從我的數據庫中拉出TitleWindows的名稱。將字符串轉換爲TitleWindow的類

然後從我的主應用程序,我必須啓動TitleWindow。所以在我的函數中,我需要將TitleWindow的名稱轉換爲一個類,因爲PopUpManager接受一個類。以下是我的代碼。

當啓動我的應用程序,並試圖發起我收到錯誤的TitleWindow中:

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

我不想硬編碼在我爲PopUpManager彈出的名字,這就是爲什麼我做的它是這樣的。任何方法來解決這個問題?

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); 
} 

回答

0

我最近不得不做很類似的事情。這是我寫的做功能:

//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); 
       } 

注:要正確地創建了類,則需要包括一個import語句:

import org.bishop.Login; 

,並聲明的變量在代碼中的類如下:

Login; 

否則這些類將不可用於創建。

+0

這就是它..它也適用於我。萬分感謝。 – FlexyBoz