Adobe Air (wiwobooks.com Release)
nativen Fensters:
import flash.display.NativeWindow;
import flash.display.NativeWindowInitOptions;
// neue NativeWindowInitOptions-Instanz erstellen
var windowInitOptions:NativeWindowInitOptions =
new NativeWindowInitOptions();
// neue NativeWindow-Instanz erstellen
var newWindow:NativeWindow = new NativeWindow(windowInitOptions); // neues Fenster anzeigen
newWindow.activate();
Listing 9.1 Erstellen eines neuen Fensters in ActionScript
9.3.2 Neues ActionScript-Fenster in JavaScript erstellen
Greifen Sie mithilfe der Referenz window.runtime.flash.display auf die Klassen im flash.display -Paket zu, um ein neues natives Fenster zu erstellen.
Lösungsweg
1. Neue Instanz von window.runtime.flash.display.NativeWindowInitOptions erstellen
2. Neue Instanz von window.runtime.flash.display.NativeWindow erstellen und Initialisierungsoptionen dem Konstruktor als Parameter übergeben
Voraussetzung
Die Datei, in der der JavaScript-Code ausgeführt wird, befindet sich innerhalb der Anwendungs-Sicherheits-Sandbox.
So geht es
Im folgenden Listing sehen Sie ein einfaches Beispiel für die Erstellung eines neuen nativen Fensters innerhalb von JavaScript:
// neue NativeWindowInitOptions-Instanz erstellen
var windowInitOptions = new window.runtime.flash.display. NativeWindowInitOptions();
// neue NativeWindow-Instanz erstellen
var newWindow = new window.runtime.flash.display.
NativeWindow(windowInitOptions);
// neues Fenster anzeigen
newWindow.activate();
Listing 9.2 Erstellen eines neuen nativen Fensters in JavaScript
9.3.3 Neues HTML-Fenster in JavaScript erstellen
Verwenden Sie window.open(), um ein einfaches HTML-Fenster mit StandardFenster-Chrome (siehe Abschnitt 9.7) zu erstellen, oder die statische Methode createRootWindow() der HTMLLoader -Klasse des Pakets window.runtime.flash. html , um einen in ein neues NativeWindow -Objekt eingebetteten HTMLLoader zu erstellen, mit dem Sie HTML-Inhalte laden können. Im Gegensatz zu Instanzen der NativeWindow -Klasse in ActionScript brauchen die HTML-Fenster nicht eigens aktiviert zu werden, sondern sind gleich zu Beginn sichtbar.
Lösungsweg
Aufruf der Methode open() des Windows -Objekts
oder
Aufruf der statischen Methode window.runtime.flash.html.HTMLLoader.createRootWindow()
Laden des HTML-Inhalts mithilfe HTMLLoader.load() und einer window.runtime.flash.net.URLRequest -Instanz
Stolperfallen/Caveats
Die JavaScript-Standardmethode open() kann außerhalb der Anwendungs-Sicherheits-Sandbox nicht automatisch, sondern nur in Reaktion auf Benutzerinteraktion (z. B. Mausklick oder Tastatureingabe) verwendet werden. Das verhindert z. B. das Öffnen eines JavaScript-Fensters von einer HTML-Datei, die aus dem Internet geladen wurde.
So geht es
open()-Methode
Erstellen eines einfachen HTML-Fensters mit System-Fenster-Chrome mit zu ladendem Inhalt als einzigem Parameter:
// neues HTML-Fenster erstellen
newWindow = window.open("andereSeite.html");
Erstellen eines HTML-Fensters mit Namen des Fensters und Initialisierungsparametern:
// neues, 400px breites, 300px hohes HTML-Fenster
// mit Namen myWindow erstellen
newWindow = window.open("andereSeite.html", "myWindow", "width=400, height=300");
createRootWindow()-Methode
Die statische createRootWindow() -Methode der HTMLLoader -Klasse gibt eine neue HTMLLoader -Instanz zurück, die ihrerseits eine Referenz auf das JavaScript window -Objekt des Fensters enthält. Der eigentliche Inhalt der Seite muss jedoch separat geladen werden.
Erstellen eines Fensters mit Standard-Chrome und Scrollbalken für den Inhalt:
myHTMLLoader = window.runtime.flash.html.HTMLLoader. createRootWindow();
myHTMLLoader.load(new window.runtime.flash.net. URLRequest("andereSeite.html"));
Erstellen eines Fensters ohne Scrollbalken, 400 Pixel breit und 300 Pixel hoch, an Position 100,100:
// Fenster ist sichtbar
var isVisible = true;
// Init-Options
var initOptions = new window.runtime.flash.display.
NativeWindowInitOptions();
// Rectangle-Objekt für Dimensionen erstellen
var bounds = new window.runtime.flash.geom.Rectangle(100,100,400,300); // Scrollbalken nicht sichtbar
var showScroll = false;
// createRootWindow aufrufen
var myHTMLLoader = myHTMLLoader.createRootWindow(isVisible, initOptions, showScroll, bounds);
// URLRequest-Objekt erstellen
var urlReq = new URLRequest("andereSeite.html");
// Seite laden
myHTMLLoader.load(urlReq);
HTMLLoader für HTML-Inhalte
Mit der createRootWindow() Methode der HTMLLoader -Klasse erstellen Sie ein natives Fenster mit
Weitere Kostenlose Bücher