Note: The Askee did like the answer: SWF's as SWF's for EXE's.? I would say that is native to Adobe Flash, plus there has always been ANT 'Build Commands' -- as well as -- ITASCA in use for these processes (now deprecated). The main positive outcome for your situation is that I already had code that I used for something similar, so I added it to github - Take a look, it is very straightforward with comments and instructions: Note, the Application Manifest files along with custom **bat** files allow the /exe files to be generated from your action-script within **Main.as and application.xmL https://github.com/leonardo-m-mendevil/esexes.git **
function setPPS(F1, ActionVersion)
{
if (fl.fileExists(F1)
{
var _x, _f, _t, _d;
fl.openDocument(F1);
var file_n = F1.split("/").pop();
var path_f = F1.split(file_n)[0].join("/");
file_n = file_n.split(".")[0];
var pt = path_f + "/_Profile_._x";
fl.getDocumentDOM().exportPublishProfile(pt);
_x = FLfile.read(pt);
_f = _x.indexOf("<defaultNames>");
_t = _x.indexOf("</defaultNames>");
_d = _x.substring(_f, _t);
_x = _x.split(_d).join("<defaultNames>0");
_f = _x.indexOf("<flashDefaultName>");
_t = _x.indexOf("</flashDefaultName>");
_d = _x.substring(_f, _t);
_x = _x.split(_d).join("<flashDefaultName>0");
_f = _x.indexOf("<flashfile_n>");
_t = _x.indexOf("</flashfile_n>");
_d = _x.substring(_f, _t);
var p3i = "../";
if (file_n.indexOf("/") > -1){
var splitPath = file_n.split("/");
splitPath.length--;
var i = splitPath.length;
while (i--) { p3i += "../"; }
}
_x = _x.split(_d).join("<flashfile_n>" + p3i + "deploy/" + file_n + ".swf");
var types = {};
types.projectorWinfile_n = "exe";
for (var n in types) {
_f = _x.indexOf("<" + n + ">");
_t = _x.indexOf("</" + n + ">");
_d = _x.substring(_f, _t);
_x = _x.split(_d).join("<" + n + ">" + file_n + "." + types[n]);
}
_f = _x.indexOf("<ActionScriptVersion>");
_t = _x.indexOf("</ActionScriptVersion>");
_d = _x.substring(_f, _t);
_x = _x.split(_d).join("<ActionScriptVersion>" + ActionVersion);
_f = _x.indexOf("<PackageExportFrame>");
_t = _x.indexOf("</PackageExportFrame>");
_d = _x.substring(_f, _t);
_x = _x.split(_d).join("<PackageExportFrame>1");
if (ActionVersion == 2) {
_f = _x.indexOf("<PackagePaths>");
_t = _x.indexOf("</PackagePaths>");
} else {
_f = _x.indexOf("<AS3PackagePaths>");
_t = _x.indexOf("</AS3PackagePaths>");
}
_d = _x.substring(_f, _t);
var cpt = "./";
if (file_n.indexOf("/") > -1){
cpt = "";
var t4 = file_n.split("/");
t4.length--;
var i = t4.length;
while (i--){
cpt += "../";
}
}
switch(ActionVersion){
case 2:
_x = _x.split(_d).join("<PackagePaths>" + cpt + "classes");
break;
case 3:
_x = _x.split(_d).join("<AS3PackagePaths>" + cpt + "classes");
}
function writeAllDOM(xstrg,pt){
FLfile.write(pt, xstrg);
fl.getDocumentDOM().importPublishProfile(pt);
fl.saveDocument(fl.getDocumentDOM(), cpt);
fl.getDocumentDOM().publish();
}
FLfile.remove(fPath);
}
}
Nguồn
2013-07-19 00:03:44
Tôi không nghĩ rằng có tùy chọn dòng lệnh để tạo máy chiếu. Nó phải được thực hiện thông qua Flash Professional. Tôi sẽ khuyên bạn nên xem xét việc tạo ra một ứng dụng Adobe AIR mà làm cho việc sử dụng tính năng Captive Runtime để tạo ra một exe. Bạn có thể làm taht thông qua dòng lệnh hoặc xây dựng ANT. – JeffryHouser
@ www.Flextras.com Bạn không cần Flash Professional để tạo tệp chiếu. Tùy chọn trình đơn của nó trong Flash Player, cho phép bạn tạo ứng dụng gốc. Tôi đang tìm kiếm đối số dòng lệnh cho trình phát flash, có thể lấy tệp .swf làm đối số dòng lệnh và xuất tệp .exe (trong trường hợp cửa sổ) hoặc tệp .app (trong trường hợp OSX). –
Tôi không biết Adobe vẫn phân phối trình phát độc lập. Tuy nhiên; Tôi không tin rằng điều này có thể được thực hiện tại dòng lệnh. Tôi sẽ lặp lại đề xuất của mình để sử dụng Adobe AIR w/Captive Runtime. – JeffryHouser