15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Kommunikation mit nativen Prozessen in AIR<br />

Achten Sie beim Lesen von Daten aus dem Standardeingabestream darauf, die Daten direkt bei der Erstellung zu lesen.<br />

Fügen Sie also einen Ereignis-Listener für das standardOutputData-Ereignis hinzu. Im standardOutputData-<br />

Ereignis-Listener lesen Sie die Daten aus der standardOutput-Eigenschaft des NativeProcess-Objekts. Warten Sie<br />

nicht darauf, dass die Ereignisse standardOutputClose oder exit alle Daten lesen. Wenn Sie die Daten nicht direkt<br />

beim Erstellen durch den nativen Prozess lesen, kann der Puffer zu voll werden oder Daten können verloren gehen.<br />

Wenn der Puffer voll ist, kann dies dazu führen, dass der native Prozess beim Versuch, weitere Daten zu schreiben,<br />

angehalten wird. Wenn Sie jedoch keinen Ereignis-Listener für das standardOutputData-Ereignis registrieren, wird<br />

der Puffer nicht voll und der Prozess wird nicht angehalten. In diesem Fall haben Sie keinen Zugriff auf die Daten.<br />

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();<br />

var file:File = File.applicationDirectory.resolvePath("test.exe");<br />

nativeProcessStartupInfo.executable = file;<br />

process = new NativeProcess();<br />

process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, dataHandler);<br />

process.start(nativeProcessStartupInfo);<br />

var bytes:ByteArray = new ByteArray();<br />

function dataHandler(event:ProgressEvent):void<br />

{<br />

bytes.writeBytes(process.standardOutput.readBytes(process.standardOutput.bytesAvailable);<br />

}<br />

Lesen aus dem Standardfehlerstream<br />

Zum Lesen von Daten aus dem Standardfehlerstream verwenden Sie die read-Methoden dieser Eigenschaft. Während<br />

die AIR-Anwendung Fehlerstreamdaten aus dem Prozess liest, setzt das NativeProcess-Objekt standardErrorData-<br />

Ereignisse ab.<br />

Wenn beim Schreiben in den Standardfehlerstream ein Fehler auftritt, setzt das NativeProcess-Objekt ein<br />

standardErrorIoError-Ereignis ab.<br />

Wenn der Prozess den Fehlerstream schließt, setzt das NativeProcess-Objekt ein standardErrorClose-Ereignis ab..<br />

Achten Sie beim Lesen von Daten aus dem Standardfehlerstream darauf, die Daten direkt bei der Erstellung zu lesen.<br />

Fügen Sie also einen Ereignis-Listener für das standardErrorData-Ereignis hinzu. Im standardErrorData-<br />

Ereignis-Listener lesen Sie Daten aus der standardError-Eigenschaft des NativeProcess-Objekts. Warten Sie nicht<br />

darauf, dass die Ereignisse standardErrorClose oder exit alle Daten lesen. Wenn Sie die Daten nicht direkt beim<br />

Erstellen durch den nativen Prozess lesen, kann der Puffer zu voll werden oder Daten können verloren gehen. Wenn<br />

der Puffer voll ist, kann dies dazu führen, dass der native Prozess beim Versuch, weitere Daten zu schreiben,<br />

angehalten wird. Wenn Sie jedoch keinen Ereignis-Listener für das standardErrorData-Ereignis registrieren, wird<br />

der Puffer nicht voll und der Prozess wird nicht angehalten. In diesem Fall haben Sie keinen Zugriff auf die Daten.<br />

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();<br />

var file:File = File.applicationDirectory.resolvePath("test.exe");<br />

nativeProcessStartupInfo.executable = file;<br />

process = new NativeProcess();<br />

process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, errorDataHandler);<br />

process.start(nativeProcessStartupInfo);<br />

var errorBytes:ByteArray = new ByteArray();<br />

function errorDataHandler(event:ProgressEvent):void<br />

{<br />

bytes.writeBytes(process.standardError.readBytes(process.standardError.bytesAvailable);<br />

}<br />

Letzte Aktualisierung 27.6.2012<br />

890

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!