![]() |
|
||||||||||
|
|||||
|
Вот кусок кода для запуска компиляции swf из AIR:
private function runMxmlc():void { var argVector:Vector.<String> = new Vector.<String>(); argVector.push(SDK_PATH + "/bin/mxmlc.exe"); argVector.push(" -output " + SWF_PATH + "lib.swf"); argVector.push(LIB_CLASS_PATH + "Main.as"); argVector.push(" -static-link-runtime-shared-libraries=true"); var startupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); startupInfo.arguments = argVector; startupInfo.executable = new File("c:/windows/system32/cmd.exe"); _process = new NativeProcess(); _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onProcessEvent); _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onProcessEvent); _process.addEventListener(NativeProcessExitEvent.EXIT, onProcessEvent); _process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onProcessEvent); _process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onProcessEvent); _process.start(startupInfo); } C:\docs\programs\flex_sdk_4.1.0.16076\bin\mxmlc.exe -output C:\docs\work\flash\progects\GenLib\files\lib.swf C:\docs\work\flash\progects\GenLib\files\tmp\Main.as -static-link-runtime-shared-libraries=true Но при запуске air-проекта, lib.swf не создается. Трейсы в onProcessEvent() горорят что происходит только ProgressEvent.STANDARD_OUTPUT_DATA. Содержимое процесса, по сути, это cmd со строкой ввода: Подскажите, что делаю не так или намекните как посмотреть, на самом ли деле запускается cmd и как реально выглядит команда на компиляцию. Последний раз редактировалось Aloran; 19.05.2011 в 16:32. |
|
|||||
|
Цитата:
|
|
|||||
|
Сделал так
private function runMxmlc():void { var argVector:Vector.<String> = new Vector.<String>(); argVector.push(" -output " + SWF_PATH + "lib.swf"); argVector.push(LIB_CLASS_PATH + "Main.as"); argVector.push(" -static-link-runtime-shared-libraries=true"); var startupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); startupInfo.arguments = argVector; startupInfo.executable = new File("C:/docs/programs/flex_sdk_4.1.0.16076/bin/mxmlc.exe"); _process = new NativeProcess(); _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onProcessEvent); _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onProcessEvent); _process.addEventListener(NativeProcessExitEvent.EXIT, onProcessEvent); _process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onProcessEvent); _process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onProcessEvent); _process.start(startupInfo); } argVector = -output C:\docs\work\flash\progects\GenLib\bin\files\just.swf C:\docs\work\flash\progects\GenLib\bin\files\tmp\Main.as -static-link-runtime-shared-libraries=true standardOutputData Loading configuration file C:\docs\programs\flex_sdk_4.1.0.16076\frameworks\flex-config.xml standardOutputData Adobe Flex Compiler (mxmlc) Version 4.1.0 build 16076 Copyright (c) 2004-2009 Adobe Systems, Inc. All rights reserved. standardErrorData Error: unable to open ' -static-link-runtime-shared-libraries=true' standardErrorData Use 'mxmlc -help' for information about using the command line. exit ___________________ Нашел ответ: var argVector:Vector.<String> = new Vector.<String>(); argVector.push(" -output=" + SWF_PATH + "lib.swf"); argVector.push(LIB_CLASS_PATH + "Main.as"); alatar спасибо за помощь Последний раз редактировалось Aloran; 19.05.2011 в 19:08. |
|
|||||
|
Цитата:
Добавлено через 4 минуты + все параметры с пробелами (кроме путей к файлам) должны быть разбиты на несколько параметров. Добавлено через 5 минут т.е. нельзя писать: надо |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|