ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.desktop 

NativeProcess  - AS3

Paketflash.desktop
Klassepublic class NativeProcess
VererbungNativeProcess Inheritance EventDispatcher Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Die NativeProcess-Klasse bietet Befehlszeilenintegration und allgemeine Startfähigkeiten. Mithilfe der NativeProcess-Klasse kann eine AIR-Anwendung native Prozesse auf dem Host-Betriebssystem ausführen. Die AIR-Anwendung kann die Standardeingabestreams (stdin) und die Standardausgabestreams (stdout) des Prozesses sowie den Standardfehlerstream (stderr) des Prozesses überwachen.

Die NativeProcess-Klasse und ihre Fähigkeiten stehen nur AIR-Anwendungen zur Verfügung, die mit einem nativen Installationsprogramm installiert wurden (Anwendungen mit dem Profil „erweiterter Desktop“). Beim Debugging können Sie das -profile extendedDesktop-Argument an ADL übergeben, um die NativeProcess-Funktionalität zu aktivieren. Zur Laufzeit können Sie die NativeProcess.isSupported-Eigenschaft überprüfen, um festzustellen, ob die native Prozesskommunikation unterstützt wird.

Unterstützung von AIR-Profilen: Diese Funktion wird von Anwendungen unterstützt, die über native Installer unter Desktopbetriebssystemen bereitgestellt werden. Die Funktion wird nicht auf mobilen Geräten oder Geräten mit AIR für TV unterstützt. Mit der NativeProcess.isSupported-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

AIR-Anwendungen, die mit einem nativen Installationsprogramm installiert wurden (Anwendungen mit dem Profil „erweiterter Desktop“) können eine Anwendung auch mit File.openWithDefaultApplication öffnen. Die NativeProcess-Klasse ermöglicht jedoch den direkten Zugriff auf die Standardeingabe-, Standardausgabe und Standardfehler-Pipes.

Hinweis: AIR-für-TV-Anwendungen, die das extendedTV-Profil verwenden, können native Erweiterungen verwenden, um native Prozesse auszuführen. Mobile Geräte können ebenfalls native Erweiterungen verwenden.

Beispiele anzeigen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
      isSupported : Boolean
[statisch] [schreibgeschützt] Gibt an, ob laufende native Prozesse im aktuellen Profil unterstützt werden.
NativeProcess
      running : Boolean
[schreibgeschützt] Gibt an, ob dieser native Prozess zurzeit ausgeführt wird.
NativeProcess
      standardError : IDataInput
[schreibgeschützt] Ermöglicht den Zugriff auf die Standardfehlerausgabe von diesem nativen Prozess.
NativeProcess
      standardInput : IDataOutput
[schreibgeschützt] Ermöglicht den Zugriff auf die Standardeingabe dieses nativen Prozesses.
NativeProcess
      standardOutput : IDataInput
[schreibgeschützt] Ermöglicht den Zugriff auf die Standardausgabe-Pipe dieses nativen Prozesses.
NativeProcess
Öffentliche Methoden
 MethodeDefiniert von
  
    NativeProcess()
Konstruiert ein nicht initialisiertes NativeProcess-Objekt.
NativeProcess
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
  
    closeInput():void
Schließt den Eingabestream für diesen Prozess.
NativeProcess
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
  
    exit(force:Boolean = false):void
Versucht den nativen Prozess zu beenden.
NativeProcess
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
  
Startet den nativen Prozess, der durch die angegebene Start-Info identifiziert wird.
NativeProcess
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 Ereignis Übersicht Definiert von
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird.EventDispatcher
  
    exit
Gibt an, dass der native Prozess beendet wurde.NativeProcess
  Gibt an, dass NativeProcess seinen Fehlerstream geschlossen hat.NativeProcess
  Gibt an, dass der native Prozess Daten zur Verfügung hat, die vom Standardfehlerstream (stderror) gelesen werden können.NativeProcess
  Gibt an, das nicht vom Standardfehlerstream (stderror) gelesen werden konnte.NativeProcess
  Gibt an, dass das NativeProcess-Objekt seinen Eingabestream durch einen Aufruf der closeInput()-Methode geschlossen hat.NativeProcess
  Gibt an, dass nicht in den Standardeingabestream (stdin) geschrieben werden konnte.NativeProcess
  Gibt an, dass NativeProcess Daten für den untergeordneten Prozess geschrieben hat.NativeProcess
  Gibt an, dass NativeProcess seinen Ausgabestream geschlossen hat.NativeProcess
  Gibt an, dass der native Prozess Daten zur Verfügung hat, die vom Ausgabestream gelesen werden können.NativeProcess
  Gibt an, dass nicht vom stdout-Stream gelesen werden konnte.NativeProcess
Eigenschaftendetails
    

isSupported

Eigenschaft
isSupported:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, ob laufende native Prozesse im aktuellen Profil unterstützt werden. Diese Eigenschaft gibt nur dann true zurück, wenn die Ausführung im extendedDesktop-Profil erfolgt. Außerdem ist NativeProcess.isSupported immer false bei Anwendungen, die als AIR-Datei installiert werden. Sie müssen eine AIR-Anwendung mit dem ADT-Flag -target native komprimieren, um die NativeProcess-Klasse zu verwenden.



Implementierung
    public static function get isSupported():Boolean
    

running

Eigenschaft 
running:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, ob dieser native Prozess zurzeit ausgeführt wird. Der Prozess wird ausgeführt, wenn Sie die start()-Methode aufgerufen haben und das NativeProcess-Objekt noch kein exit-Ereignis abgesetzt hat. Eine NativeProcess-Instanz entspricht einem einzelnen Prozess auf dem zugrundeliegenden Betriebssystem. Diese Eigenschaft behält den Wert true, solange der Prozess des zugrundeliegenden Betriebssystems ausgeführt wird (während der native Prozess gestartet wird und bis der Prozess einen Beenden-Code an das Betriebssystem zurückgibt.)



Implementierung
    public function get running():Boolean
    

standardError

Eigenschaft 
standardError:IDataInput  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Ermöglicht den Zugriff auf die Standardfehlerausgabe von diesem nativen Prozess. Wenn Daten in dieser Pipe verfügbar werden, setzt das NativeProcess-Objekt ein ProgressEvent-Objekt ab. Wenn Sie versuchen, Daten aus diesem Stream zu lesen, wenn dort keine vorhanden sind, gibt das NativeProcess-Objekt eine EOFError-Ausnahme aus.

Der Typ ist IDataInput, da aus der Perspektive des aktuellen Prozesses Daten eingegeben werden, obwohl es sich um einen Ausgabestream des untergeordneten Prozesses handelt.



Implementierung
    public function get standardError():IDataInput

Auslöser
EOFError — wenn keine Daten vorhanden sind und ein Lesevorgang versucht wird.

Verwandte API-Elemente

    

standardInput

Eigenschaft 
standardInput:IDataOutput  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Ermöglicht den Zugriff auf die Standardeingabe dieses nativen Prozesses. Verwenden Sie diese Pipe, um Daten an diesen Prozess zu senden. Jedes Mal, wenn Daten in die input-Eigenschaft geschrieben werden, werden diese Daten in die Eingabe-Pipe des nativen Prozesses geschrieben, sobald dies möglich ist.

Der Typ ist IDataOutput, da aus der Perspektive des aktuellen Prozesses Daten ausgegeben werden, obwohl es sich um einen Eingabestream des untergeordneten Prozesses handelt.



Implementierung
    public function get standardInput():IDataOutput

Auslöser
IllegalOperationError — beim Schreiben in diesen Wert, wenn running den Wert false zurückgibt oder wenn versucht wird, Daten in einen geschlossenen Eingabestream zu schreiben.

Verwandte API-Elemente

    

standardOutput

Eigenschaft 
standardOutput:IDataInput  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Ermöglicht den Zugriff auf die Standardausgabe-Pipe dieses nativen Prozesses. Verwenden Sie diese Pipe, um Daten aus der Standardausgabe des nativen Prozesses zu lesen. Wenn in dieser Pipe Daten vorhanden sind, setzt das NativeProcess-Objekt ein ProgressEvent ab. Wenn Sie versuchen, Daten aus diesem Stream zu lesen, wenn dort keine vorhanden sind, gibt das NativeProcess-Objekt einen EOFError aus.

Der Typ ist IDataInput, da aus der Perspektive des aktuellen Prozesses Daten eingegeben werden, obwohl es sich um einen Ausgabestream des untergeordneten Prozesses handelt.



Implementierung
    public function get standardOutput():IDataInput

Auslöser
EOFError — wenn keine Daten vorhanden sind und ein Lesevorgang versucht wird.

Verwandte API-Elemente

Konstruktordetails
    

NativeProcess

()Konstruktor
public function NativeProcess()

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Konstruiert ein nicht initialisiertes NativeProcess-Objekt. Rufen Sie die start()-Methode auf, um den Prozess zu starten.

Verwandte API-Elemente

Methodendetails

    closeInput

()Methode
public function closeInput():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Schließt den Eingabestream für diesen Prozess. Einige Befehlzeilenanwendungen warten, bis der Eingabestream geschlossen ist, bevor bestimmte Vorgänge gestartet werden. Nachdem der Stream geschlossen wurde, kann er erst dann wieder geöffnet werden, wenn der Prozess beendet und erneut gestartet wurde.


Ereignisse
ioErrorStandardInput:IOErrorEvent — Es gibt ein Problem beim Schließen des Eingabestreams für den Prozess.
 
standardInputClose:Event — Der Eingabestream wurde geschlossen.

    exit

()Methode 
public function exit(force:Boolean = false):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Versucht den nativen Prozess zu beenden.

Parameter

force:Boolean (default = false) — Ob die Anwendung versuchen soll, das Beenden des nativen Prozesses ggf. zu erzwingen.

Wenn der force-Parameter auf false gesetzt ist, versucht diese Methode, den nativen Prozess ohne Fehler zu beenden. Diese Methode „bittet“ den nativen Prozess, sich zu schließen. Diese Anforderung kann vom nativen Prozess ignoriert werden, weshalb diese Methode keine Garantie darstellt, dass der native Prozess tatsächlich beendet wird. Das NativeProcess-Objekt setzt nur dann ein NativeProcessExitEvent-Ereignis ab, wenn der native Prozess beendet wird.

Wenn der force-Parameter auf true gesetzt ist, versucht diese Methode, das Beenden des nativen Prozesses zu erzwingen. Der Aufruf dieser Methode, wenn der force-Parameter den Wert true hat, sollte nur als letzter Ausweg verwendet werden. Der Aufruf dieser Methode, während der force-Parameter auf true gesetzt ist, kann sich nachteilig auf den Zustand der Systemressourcen, die mit dem nativen Prozess verknüpft sind, auswirken. Geöffnete Dateien weisen zum Beispiel unter Umständen einen inkonsistenten Zustand auf. Die Laufzeitumgebung versucht, das Beenden des nativen Prozesses zu erzwingen. Es kann jedoch nicht garantiert werden, dass der native Prozess tatsächlich beendet wird. Das NativeProcess-Objekt setzt nur dann ein NativeProcessExitEvent-Ereignis ab, wenn der native Prozess beendet wird.

Falls NativeProcess erfolgreich beendet wird, wird ein NativeProcessExitEvent-Ereignis abgesetzt.

    start

()Methode 
public function start(info:NativeProcessStartupInfo):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Startet den nativen Prozess, der durch die angegebene Start-Info identifiziert wird. Nachdem der Prozess gestartet wurde, werden alle Eingabe- und Ausgabestreams geöffnet. Diese Methode liefert sofort eine Rückgabe, nachdem die Anforderung, den angegebenen Prozess zu starten, an das Betriebssystem erfolgt ist. Das NativeProcess-Objekt gibt eine IllegalOperationError-Ausnahme aus, wenn der Prozess zurzeit ausgeführt wird. Der Prozess wird ausgeführt, wenn die running-Eigenschaft des NativeProcess-Objekts den Wert true zurückgibt. Wenn das Betriebssystem den Prozess nicht starten kann, wird ein Error ausgegeben.

Eine NativeProcess-Instanz entspricht einem einzelnen Prozess auf dem zugrundeliegenden Betriebssystem. Wenn Sie mehrere Instanzen desselben Betriebssystemprozesses gleichzeitig ausführen möchten, können Sie für jeden untergeordneten Prozess eine NativeProcess-Instanz erstellen.

Sie können diese Methode aufrufen, wenn die running-Eigenschaft des NativeProcess-Objekts den Wert false zurückgibt. Dies bedeutet, dass das NativeProcess-Objekt wiederverwendet werden kann. Anders ausgedrückt, Sie können eine NativeProcess-Instanz konstruieren, die start()-Methode aufrufen, auf das exit-Ereignis warten und dann erneut die start()-Methode aufrufen. Sie können im nachfolgenden Aufruf der start()-Methode ein anderes NativeProcessStartupInfo-Objekt verwenden als mit dem info-Parameter festgelegt.

Die NativeProcess-Klasse und ihre Fähigkeiten stehen nur AIR-Anwendungen zur Verfügung, die mit einem nativen Installationsprogramm installiert wurden. Beim Debugging können Sie das -profile extendedDesktop-Argument an ADL übergeben, um die NativeProcess-Funktionalität zu aktivieren. Überprüfen Sie die NativeProcess.isSupported-Eigenschaft, um festzustellen, ob die native Prozesskommunikation unterstützt wird.

Wichtige Sicherheitsüberlegungen:

Die API für native Prozesse kann jede ausführbare Datei auf dem System des Benutzers ausführen. Seien Sie beim Konstruieren und Ausführen von Befehlen äußerst vorsichtig. Wenn ein Teil eines auszuführenden Befehls aus einer externen Quelle stammt, prüfen Sie sorgfältig, ob die Ausführung des Befehls sicher ist. Gleichermaßen sollte Ihre AIR-Anwendung Daten validieren, die an einen laufenden Prozess übergeben werden.

Die Validierung von Eingaben kann jedoch schwierig sein. Um diese Probleme zu vermeiden, schreiben Sie am besten eine native Anwendung (zum Beispiel eine EXE-Datei für Windows) mit spezifischen APIs. Diese APIs sollten nur diejenigen Befehle verarbeiten, die speziell für die AIR-Anwendung erforderlich sind. Zum Beispiel könnte die native Anwendung nur einen begrenzten Satz von Anweisungen über den Standardeingabestream akzeptieren.

AIR unter Windows lässt die direkte Ausführung von .bat-Dateien nicht zu. Windows-.bat-Dateien werden vom Befehlszeileninterpreter (cmd.exe) ausgeführt. Wenn Sie eine .bat-Datei aufrufen, kann diese Befehlsanwendung Argumente, die an den Befehl übergeben werden, als zusätzlich zu startende Anwendungen interpretieren. Durch das böswillige Einfügen von zusätzlichen Zeichen in den Argumentstring könnte cmd.exe eine schädliche oder unsichere Anwendung ausführen. Ohne eine gute Datenvalidierung könnte Ihre Anwendung zum Beispiel myBat.bat myArguments c:/evil.exe aufrufen. Die Befehlsanwendung würde die Anwendung „evil.exe“ zusätzlich zu Ihrer Batchdatei ausführen.

Wenn Sie die start()-Methode mit einer .bat-Datei aufrufen, gibt das NativeProcess-Objekt eine Ausnahme aus. Die message-Eigenschaft des Error-Objekts enthält den String "Fehler #3219: NativeProcess konnte nicht gestartet werden."

Parameter

info:NativeProcessStartupInfo — NativeProcessStartupInfo Definiert Informationen darüber, wie der native Prozess gestartet werden soll.


Auslöser
IllegalOperationError — wenn NativeProcess zurzeit ausgeführt wird.
 
ArgumentError — wenn die nativePath-Eigenschaft von NativeProcessStartupInfo nicht vorhanden ist.
 
Error — wenn NativeProcess nicht erfolgreich gestartet wurde.

Verwandte API-Elemente

Ereignisdetails
    

exit

Ereignis
Ereignisobjekttyp: flash.events.NativeProcessExitEvent
Eigenschaft NativeProcessExitEvent.type = flash.events.NativeProcessExitEvent

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass der native Prozess beendet wurde. Die exitCode-Eigenschaft enthält den Wert, den der Prozess beim Beenden an das Host-Betriebssystem zurückgibt. Wenn die AIR-Anwendung den Prozess durch einen Aufruf der exit()-Methode des NativeProcess-Objekts beendet, wird die exitCode-Eigenschaft auf NaN (not a number, keine Zahl) gesetzt.

    

standardErrorClose

Ereignis  
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass NativeProcess seinen Fehlerstream geschlossen hat.

    

standardErrorData

Ereignis  
Ereignisobjekttyp: flash.events.ProgressEvent
Eigenschaft ProgressEvent.type = flash.events.ProgressEvent

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass der native Prozess Daten zur Verfügung hat, die vom Standardfehlerstream (stderror) gelesen werden können. Das NativeProcess-Objekt setzt dieses Ereignis ab, wenn der untergeordnete Prozess seinen Standardfehlerstream löscht oder wenn der interne Puffer für die Kommunikation zwischen Prozessen voll ist. Schreiben Sie keinen Code, der von der Größe dieses internen Puffers abhängig ist; sie variiert je nach Version und Betriebssystem.

    

standardErrorIoError

Ereignis  
Ereignisobjekttyp: flash.events.IOErrorEvent
Eigenschaft IOErrorEvent.type = flash.events.IOErrorEvent

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, das nicht vom Standardfehlerstream (stderror) gelesen werden konnte. Das NativeProcess-Objekt kann dieses Ereignis absetzen, wenn die Laufzeitumgebung keine Daten aus der Standardfehlergabepipe des nativen Prozesses lesen kann.

    

standardInputClose

Ereignis  
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass das NativeProcess-Objekt seinen Eingabestream durch einen Aufruf der closeInput()-Methode geschlossen hat. Das NativeProcess-Objekt setzt dieses Ereignis nicht ab, wenn der native Prozess selbst den Eingabestream schließt.

    

standardInputIoError

Ereignis  
Ereignisobjekttyp: flash.events.IOErrorEvent
Eigenschaft IOErrorEvent.type = flash.events.IOErrorEvent

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass nicht in den Standardeingabestream (stdin) geschrieben werden konnte. Das NativeProcess-Objekt setzt dieses Ereignis ab, wenn die closeInput()-Methode fehlschlägt oder wenn die Laufzeitumgebung keine Daten in die Standardeingabe-Pipe des nativen Prozesses schreiben kann.

    

standardInputProgress

Ereignis  
Ereignisobjekttyp: flash.events.ProgressEvent
Eigenschaft ProgressEvent.type = flash.events.ProgressEvent

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass NativeProcess Daten für den untergeordneten Prozess geschrieben hat. Das NativeProcess-Objekt setzt dieses Ereignis ab, wenn Daten in den Stream geschrieben werden. Dieses Ereignis gibt nicht an, ob der untergeordnete Prozess Daten gelesen hat oder nicht.

    

standardOutputClose

Ereignis  
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass NativeProcess seinen Ausgabestream geschlossen hat.

    

standardOutputData

Ereignis  
Ereignisobjekttyp: flash.events.ProgressEvent
Eigenschaft ProgressEvent.type = flash.events.ProgressEvent

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass der native Prozess Daten zur Verfügung hat, die vom Ausgabestream gelesen werden können. Das NativeProcess-Objekt setzt dieses Ereignis ab, wenn der untergeordnete Prozess seinen stdout-Stream löscht oder wenn der interne Puffer für die Kommunikation zwischen Prozessen voll ist. Schreiben Sie keinen Code, der von der Größe dieses internen Puffers abhängig ist; sie variiert je nach Version und Betriebssystem.

    

standardOutputIoError

Ereignis  
Ereignisobjekttyp: flash.events.IOErrorEvent
Eigenschaft IOErrorEvent.type = flash.events.IOErrorEvent

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Gibt an, dass nicht vom stdout-Stream gelesen werden konnte. Das NativeProcess-Objekt kann dieses Ereignis absetzen, wenn die Laufzeitumgebung keine Daten aus der Standardausgabepipe des nativen Prozesses lesen kann.

NativeProcessExample.as

Im folgenden Beispiel wird überprüft, ob die native Prozesskommunikation auf dem Computer unterstützt wird. Ist dies der Fall, richtet die Anwendung Ereignis-Listener für den nativen Prozess ein und startet die Datei „test.py“ im Hauptanwendungsverzeichnis. :
package
{
    import flash.display.Sprite;
    import flash.desktop.NativeProcess;
    import flash.desktop.NativeProcessStartupInfo;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.events.IOErrorEvent;
    import flash.events.NativeProcessExitEvent;
    import flash.filesystem.File;
    
    public class NativeProcessExample extends Sprite
    {
        public var process:NativeProcess;

        public function NativeProcessExample()
        {
            if(NativeProcess.isSupported)
            {
                setupAndLaunch();
            }
            else
            {
                trace("NativeProcess not supported.");
            }
        }
        
        public function setupAndLaunch():void
        {     
            var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
            var file:File = File.applicationDirectory.resolvePath("test.py");
            nativeProcessStartupInfo.executable = file;

            var processArgs:Vector.<String> = new Vector.<String>();
            processArgs[0] = "foo";
            nativeProcessStartupInfo.arguments = processArgs;

            process = new NativeProcess();
            process.start(nativeProcessStartupInfo);
            process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
            process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
            process.addEventListener(NativeProcessExitEvent.EXIT, onExit);
            process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
            process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);
        }

        public function onOutputData(event:ProgressEvent):void
        {
            trace("Got: ", process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable)); 
        }
        
        public function onErrorData(event:ProgressEvent):void
        {
            trace("ERROR -", process.standardError.readUTFBytes(process.standardError.bytesAvailable)); 
        }
        
        public function onExit(event:NativeProcessExitEvent):void
        {
            trace("Process exited with ", event.exitCode);
        }
        
        public function onIOError(event:IOErrorEvent):void
        {
             trace(event.toString());
        }
    }
}
Fügen Sie das folgende Python-Skript zur Datei „test.py“ in Ihrem Anwendungsverzeichnis hinzu (und stellen Sie sicher, dass Python installiert ist):
 #!/usr/bin/python
 # ------------------------------------------------------------------------------
 # Sample Python script
 # ------------------------------------------------------------------------------
 
 import sys
 
 for word in sys.argv: #echo the command line arguments
     print word
 
 print "HI FROM PYTHON"
 print "Enter user name" 
 line = sys.stdin.readline()
 
 sys.stdout.write("hello," + line)




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.