2012-10-23 88 views
1

在Flash Builder中,如果我新的Flex手機項目,並粘貼以下代碼:Flex移動項目不支持mx:Canvas?

<?xml version="1.0"?> 
<!-- Simple example to demonstrate the Halo Canvas layout container. --> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx"> 
    <s:Group/> 
    <mx:Canvas/> 
</s:Application> 

的「畫布」行編譯失敗。但是,在Flex項目中可以。我的問題是,是否有任何方法可以使用Canvas或其他暈控件而不修改Flex移動項目中的遺留代碼?或者,有什麼方法可以在Flex項目中使用本地擴展?如果兩者都不是,那將是一場噩夢。

+0

Adob​​e建議不要爲任何移動應用程序使用mx組件,因爲它們未針對其進行優化。顯然這並不能解決你的問題,但它確實解釋了你爲什麼擁有它。通常他們會工作,只是不好。但是,平面畫布不適用於Mobile。 –

+0

我認爲這個建議是針對新項目的。對於舊的,最好在重新出廠之前讓它們運行。即使速度很慢,您也可以根據需要逐個優化mx組件。 – willzeng

回答

3

我的問題是,有沒有辦法使用Canvas或其他光環控件 而不修改Flex移動項目中的遺留代碼?

是的,您必須將mx.swc添加到移動項目的庫路徑中。它應該位於類似於此的位置:

[FrameworkRoot]\frameworks\libs\mx\mx.swc 

我不確定我會推薦它;因爲MX組件未針對移動應用進行優化。我不清楚帆布會爲您提供什麼,您無法從團隊中獲得。

是否有任何方式在Flex項目中使用本機擴展?

否;本機擴展是AIR功能;您將無法在基於瀏覽器的項目中使用它們。

+0

非常感謝。我會試試看。我仍然想使用mx控件的原因很簡單,我不想修改大量現有的代碼。 – willzeng

+0

如果您想在移動設備上獲得良好的性能,您可能需要修改大量現有代碼。但是,這取決於設備,您必須嘗試一下才能看到。 – JeffryHouser

+0

它的工作。非常感謝! (但單獨使用mx.swc似乎還不夠,我還添加了[FrameworkRoot] \ framesworks \ libs \ sparkskins.swc以刪除所有錯誤。) – willzeng