[英]AS3 Flash SWF File Versioning
我在网上看了遍,似乎找不到找到在SWF文件中放入版本号的方法。 我们需要知道在不同机器上拥有的swf文件的版本,因此我们考虑过,如果文件不存在到swf目录中,则可能会写入该文件,其中包含swf版本号。 我们没有使用Flex和as3,因此无法工作,因为我们无法写入磁盘。 因此,我一直在四处查看,却找不到我们可以将swf的文件版本指定为“ 14.06.30”之类的位置。
有什么方法可以设置SWF文件的版本?
我们已经考虑过使用按键来显示版本号,但是我们不想这样做,因为swf可以加载到其他swf中,而按键可能意味着其他含义。 这将是不得已的方法。
对于swf中的版本编号,我们使用一个编译常量http://help.adobe.com/zh_CN/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7abd.html 。 例如:-define + == CONFIG :: VersionString,'{svn版本}'使用Flash Builder,您可以将其添加到其他编译器设置中,或在Continuous build脚本中设置此变量。 在您的动作脚本中,您可以使用'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;
}
}
}
如果右键单击瑞士法郎,它看起来像:
您可以使用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
文件。
对于SWF, .sol
文件存储在C:\\Users\\[USER-NAME]\\AppData\\Roaming\\Macromedia\\Flash Player\\#SharedObjects\\[random sequence of characters]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.