2011-07-11 19 views
0

我的目標是製作一個flash/as3程序,它將從數據庫中拉出多組數據(圖像和文本),並編譯和保存每個項目的Flash視頻項目。做這項工作最好的方法是什麼?我查了一下,但無法找到一個函數來發布當前狀態下的flash項目,所以我不認爲我可以在一個flash/as3文件中執行整個過程。我唯一的選擇是讓其他程序/批處理文件負責查詢數據庫並編譯多個flash/as3電影,方法是啓動一個flash程序並將它需要的數據參數傳遞給1個完整的項目數據集。有沒有可以幫助我自動創建.swf文件的程序?甚至有可能傳入init參數到flash/as3項目?任何想法或想法,將不勝感激:)!自動創建Flash/AS3項目

+0

您是想爲別人創建一個服務,還是想爲開發製作一個批處理工具? – weltraumpirat

+0

我正在嘗試開發一個批處理工具。 – CodedMonkey

回答

2

我不確定我是否完全理解了您的問題,但您可以使用Flex SDK中的命令行編譯器mxmlc.exe動態編譯您的Flash項目。

您可以爲您的Flash應用程序生成代碼(與您的應用程序一樣)爲.as文件,您可以在其中爲文本使用圖像和字符串變量的嵌入語句。這個生成的主類應該使用其他類的代碼來處理這些「動態數據」。然後將該生成的類作爲閃存應用程序的起點指向編譯器,結果將得到.swf

編輯

這裏是一個處理動態數據的靜態類的例子。

package 
{ 
    import flash.display.Sprite; 
    import flash.text.TextField; 

    public class Base extends Sprite 
    { 

     public function Base() 
     { 
     } 

     public function init(dyn:Main) : void 
     { 
      // add a new instance of the embedded image 
      addChild(new dyn.DynamicImage1()); 
      // add a new text field with the dynmaic text 
      var text:TextField = new TextField(); 
      text.text = dyn.DynmaicText1; 
     } 

    } 

} 

而且這裏所產生的主類

package 
{ 
    import flash.display.Sprite; 
    import flash.events.Event; 

    public class Main extends Sprite 
    { 

     [Embed(source = '../relative/path/to/dynamic/image.png')] 
     public var DynamicImage1:Class; 

     public var DynmaicText1:String = "This is directly from Database"; 

     public function Main():void 
     { 
      if (stage) init(); 
      else addEventListener(Event.ADDED_TO_STAGE, init); 
     } 

     private function init(e:Event = null):void 
     { 
      var base:Base = addChild(new Base()) as Base; 
      base.init(this); 
     } 

    } 

} 

一個例子現在給Main編譯器爲起點。

總而言之,這只是一個簡單的例子,可以使用數組,Vector<T>和Interfaces等等更加廣義化。

+0

謝謝,這聽起來非常接近我所需要的!但有一個問題,我如何將動態數據傳遞給項目?你提到了其他類,但是它仍然聽起來像那些類需要一些東西來告訴它們加載什麼以及從哪裏加載它。 – CodedMonkey

+0

這些類必須由創建應用程序實時生成。如果您生成整個類代碼,則所有「動態數據」都可能被硬編碼,即'var myString:String =「來自數據庫的數據」;'也可以使用'[Embed]'屬性對您的圖像進行硬編碼。你不必傳遞任何東西,你必須生成動態部分的代碼。所有其他應用程序邏輯可駐留在您可能在您生成的類中使用的靜態AS類中。我將添加一個簡單的示例作爲編輯到我的文章。 – DanielB