2009-03-03 62 views
2

是否可以將MXML自身作爲參數(XML參數)從外部應用程序傳遞並動態加載到Flash Player中以創建頁面。對於e.gFlex:將MXML文件傳遞爲XML參數

傳遞XML = < MX:帆布> < MX:標籤文本= 「你好」/ > </MX:帆布> Flex和柔性應該創建一個有標籤控件的畫布。有沒有與它有關的例子。

感謝名單

回答

0

我最初的猜測是沒有,它仍然是類型爲「XML」的,有我做了快速搜索沒有「EVAL」 ActionScript 3中和我不得不說沒有,這不可能。

但是,我在創建的應用程序中做了類似的事情。

我所做的是在數據庫中存儲對象類型和一些屬性(x,y,寬度,高度等)。這些數據是從遠程對象調用返回的,然後在運行時創建這些對象,這可以獲得您嘗試實現的類似效果。

例如:

var resultAC:ArrayCollection = event.result as ArrayCollection; 
var tmpCanvas:Canvas; 

    for(var i:int = 0; i < resultAC.length; i++) 
    { 
     if(resultAC.getItemAt(i).type == "Canvas") 
     { 
     tmpCanvas = new Canvas(); 
     tmpCanvas.x = resultAC.getItemAt(i).x; 
     tmpCanvas.y = resultAC.getItemAt(i).y; 
     ... 
     parent.addChild(tmpCanvas); 
     } 
    } 
3

MXML代碼需要被編譯成的ActionScript前,Flash Player可以用它做任何事情。 Flash Player在運行時不解釋MXML。

1

你想要做什麼是不可能的。就像brd6644所說的那樣,mxml被編譯成swf文件中的字節碼,並由Flash播放器解釋。 flash播放器無法理解mxml(甚至是動作腳本)。

這就是說,有一個JSP庫可以用於動態MXML。在這裏看到:

http://www.adobe.com/devnet/flex/articles/server_perf_05.html

這種聯繫是舊的,而現在我似乎無法找到一個更新的鏈接,但我知道這個項目仍然存在。我相信它實際上仍然是ColdFusion的一部分。它允許你創建動態的mxml,它可以根據請求編譯JIT。它當然會因爲它而受到巨大的性能影響,但是如果您需要動態的MXML,它是一個選項。

我會在找到它時用更好的鏈接更新此評論。

1

的 組件的屬性只是存儲到XML,把一個類名 屬性,因此,如果您加載XML 你可以有一個函數將XML的 屬性設置的 性質您創建的組件 將在您的 className屬性中確定