2014-06-30 136 views
0

我已經在網上查找了所有內容,似乎無法找到將版本號放入swf文件的方法。我們需要知道我們在不同機器上具有哪個版本的swf文件,所以我們曾想過如果文件不存在於swf目錄中(包含swf版本號),可能會寫入一個文件。我們沒有使用Flex和as3,所以這是行不通的,因爲我們無法寫入磁盤。所以我一直在四處尋找,一直沒能找到我們可能指定我們的swf文件版本的地方,如「14.06.30」。AS3 Flash SWF文件版本

有沒有一種方法可以設置我們的swf文件的版本?

我們想過使用按鍵顯示版本號,但我們不想這樣做,因爲swf可以加載其他swf的按鍵可能意味着別的東西。這將是最後的手段。

+1

不能你只需要添加文件本身的元數據? – BadFeelingAboutThis

+0

另外,除非您停止傳播事件,否則可以有多個一起運行的鍵盤事件偵聽器。 – BadFeelingAboutThis

+0

@LDMedia爲您提供服務,這實際上是我一直在尋找的。我們通過使用上下文菜單覆蓋了上下文菜單,它可以很好地工作,甚至可以更好,因爲它們不需要找到swf文件或者在運行時關閉它。 – iedoc

回答

6

的SWF版本編號,我們使用編譯常量http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7abd.html。例如:-define + == CONFIG :: VersionString,'{svn version}'使用Flash構建器,您可以將其添加到其他編譯器設置中,或者在Continuous構建腳本中設置此變量。在你的動作中,你可以用'CONFIG :: VersionString'來讀取這個變量。

我們將此版本號添加到swf(右鍵單擊菜單)中的上下文菜單中。

package { 
import flash.display.Sprite; 

public class Test extends Sprite 
{ 
    public function Test() 
    { 
     super(); 
     addVersionToContextMenu(); 

    } 

    private function addVersionToContextMenu() : void 
    { 
     var item:ContextMenuItem = new ContextMenuItem("Version: " + CONFIG::VersionString); 
     var items:Array = this.contextMenu.customItems; 
     items.push(item); 
     this.contextMenu.customItems = items; 
    } 
} 

}

如果你右擊SWF它看起來像:

enter image description here

+0

我實際上已經通過爲版本號添加一個全局常量並將一個項目添加到右鍵單擊上下文菜單的頂部來解決問題。我們沒有對編譯選項做任何事情,但我將其標記爲答案,因爲它與我們解決問題的方法非常相似。謝謝 – iedoc

+0

@iedoc ...但是,這種解決方案不會像以前的按鍵解決方案那樣使您處於同一點嗎?引用:「但我們不想這樣做,因爲swf可以加載其他swf的按鍵可能意味着其他東西。那麼當它用自己的上下文菜單加載到父SWF中時會發生什麼呢?哪一個會出現?只是說... –

+1

@ iedoc一個全局常量可以做同樣的事情,但對我們來說,在構建過程中自動設置一個編譯器常量更容易。 –

1

可以使用SharedObject來存儲和檢索的版本號:

var sharedObject:SharedObject = SharedObject.getLocal("versionNumber"); 
var versionNumber:String; 
if(sharedObject.data.value) 
{ 
    versionNumber = sharedObject.data.value; 
} 
else 
{ 
    // no version number has been set, set it here 
    versionNumber = "14.06.30"; 
    sharedObject.data.value = versionNumber 
    sharedObject.flush(); 
} 

如果你有SharedObject讀者(我建議.minerva)可以,甚至沒有打開該SWF檢索設定值。只需打開.sol文件。

對於主權財富基金,.sol文件存儲在C:\Users\[USER-NAME]\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\[random sequence of characters]

+2

這是一個很好的解決方案,但最終用戶可以禁用您的應用存儲sharedObjects的能力,因此可能不可靠。 – BadFeelingAboutThis