Zurück   Flashforum > Flex und AIR > Adobe AIR

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-06-2011, 14:20   #1 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
Question In CS5 Zeitleistenobjekte nicht sichtbar in Fullscreen

Hallo liebes Forum,

ich stehe vor einem Rätsel: Ich habe eine Kioskanwendung gebaut und nutze dafür die Touchevents in AIR und läuft im Vollbild.

Unter CS4 musste ich ein XML-File modifizieren, um das passende AIR-Framework nutzen zu können. Es funktionierte alles ganz gut. Das "Film testen" hat wunderbar geklappt - auch Vollbild. Nur: Einen Film erstellen (ob Projektor oder AIR) führte zu einem schwarzen Bildschirm.

In CS5 erschient zunächst gar kein Vorschaufenster bei "Film testen". Ich erstellte eine neue Flash-Datei und kopierte alle Bilder und Bibliotheksobjekte hinüber. Danach öffnete sich der Film im Vollbild und war ... SCHWARZ. Über ESC konnte ich den Vollbildmodus beenden und im Fenster war der Film korrekt zu sehen.

Der Film besteht hauptsächlich aus Timeline-basierten Inhalten. Zu Beginn erstelle ich jedoch per Skript eine FLVPlayback-Instanz im Hintergrund die permanent läuft. Sie ist nicht schuld an dem Verhalten, wenn ich sie aber statt mit
Code:
stage.addChildAt(player, 0);
auf
Code:
stage.addChildAt(player, 1);
erstelle, wird das erste Bild des Videos im Vollbildmodus angezeigt. Drücke ich ESC erscheint wieder der Film wie er sein soll.

Den Vollbildmodus habe ich wie folgt eingerichtet:
Code:
stage.fullScreenSourceRect = new Rectangle(0,0,1280,1024);
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
alternativ auch stage.displayState = StageDisplayState.FULL_SCREEN;
Ich benötige den Vollbildmodus unbedingt und verstehe das Verhalten nicht. Kann sich jemand einen Reim darauf machen?

Vielen Dank und liebe Grüße
Seebold ist offline   Mit Zitat antworten
Alt 16-06-2011, 14:26   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Ich weiß nicht, ob das der Grund für Dein Problem ist, aber eigentlich sollte man überhaupt keine Elemente direkt an die stage hängen, außer dem, das dort schon von Beginn an ist - der root.

Schau mal, ob Dein Problem noch auftaucht, wenn Du statt...
PHP-Code:
stage.addChildAt(player0); 
...einfach das hier verwendest.
PHP-Code:
addChild(player); 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (16-06-2011 um 14:27 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 16-06-2011, 14:36   #3 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
addChild ohne Stage keine Lösung

Hi Martin,

danke für die schnelle Antwort. Leider ändert das nichts. Immerhin wird das Video weiter angezeigt, und wenn es dann sauberer ist, lasse ich es gerne so, aber die Timeline-Objekt sind immer noch verschwunden.

Dies gilt im übrigen auch, wenn ich den Videoplayer gar nicht initialisiere. Darum schrieb ich, dass er nicht schuld ist -- wobei, man weiß ja nie.

Grüße
Seebold ist offline   Mit Zitat antworten
Alt 16-06-2011, 14:45   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Fügst Du vielleicht auch noch anderswo Dinge zur stage hinzu?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 16-06-2011, 14:51   #5 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
Rufen und Horchen

Nein, nichts handfestes, allerdings flansche ich an die Stage jede Menge Listener und Dispatcher; aber das ist gängige Praxis, oder?
Seebold ist offline   Mit Zitat antworten
Alt 16-06-2011, 15:04   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Seebold Beitrag anzeigen
Nein, nichts handfestes, allerdings flansche ich an die Stage jede Menge Listener und Dispatcher; aber das ist gängige Praxis, oder?
Nicht wirklich. Auf stage und root sollte man Dinge nur dann referenzieren, wenn es unbedingt nötig ist - meistens geht's auch anders.

Aber das sollte eigentlich nichts mit diesem Problem zutun haben...
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 16-06-2011, 15:58   #7 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
Und es ist doch der Videoplayer

Hm. habe jetzt etwas rumgetestet und es ist doch der Videoplayer. Ich habe jetzt etwas umgebaut, um die stage-Problematik zu verhindern. In meiner Main-Class steht nun:

Code:
private var player:FLVPlayback;
private function addVideoplayer() {	
	trace("Main:addVideoplayer");
	stage.addEventListener(CustomEvent.CUSTOM, onVideoFunc);
	player = new FLVPlayback();
	player.activeVideoPlayerIndex = 0;
	player.autoPlay = true;
	player.autoRewind = true;
	player.width =  1080;
	player.x = 200;
	player.height = 810;
	player.y = 107;
	player.scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO;
	player.align = VideoAlign.CENTER;
	player.source = "./videos/kap1_zink.f4v"
	player.pause();
	stage.dispatchEvent(new CustomEvent(CustomEvent.CUSTOM, "InitVideoPlayer", player, 2));
}
Dann habe ich auf unterster Ebene der Timeline einen MovieClip als Container platziert und diesem die Klasse cl_videocont zugewiesen. Die sieht so aus:

Code:
public function cl_videocont() {
	stage.addEventListener(CustomEvent.CUSTOM, onInitVideoPlayer);
}

private function onInitVideoPlayer(evt:CustomEvent) {
	if (evt.methode == "InitVideoPlayer") {
		trace("cl_videocont: onInitVideoPlayer: Init");
		this.addChild(evt.argument);
	}
}
So sollte der Player im Hintergrund liegen, weil die Ebene mit dem Container die hinterste ist. Und trotzdem: Im Vollbild-Modus spielt das Video, im Fenstermodus liegen die anderen Timeline Ebenen davor.

Im Director gabe es mal für Videos soetwas wie "DirectToStage". Dabei wurde das Video auf den Film gelegt, weil es dann hardwarebeschleunigt lief. Das Video lief flüssiger, es konnten aber keine Objekte überlappen. Ich habe gelesen, dass der Fullscreen-Modus hardwarebeschleunigt ist. Kann es sein, dass sich deshalb jedes Video nach vorne drängelt? Kann man das verhindern?
Seebold ist offline   Mit Zitat antworten
Alt 16-06-2011, 16:12   #8 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
  • Wieso registrierst Du in addVideoplayer erst die Listener-Funktion onVideoFunc und dispatchest das zugehörige Event gleich danach? Wäre es nicht einfach die Funktion einfach direkt aufzurufen?

  • Zitat:
    Zitat von Seebold Beitrag anzeigen
    Im Director gabe es mal für Videos soetwas wie "DirectToStage". Dabei wurde das Video auf den Film gelegt, weil es dann hardwarebeschleunigt lief.
    Das gibt es in Flash auch - nennt sich StageVideo. Über die Suchfunktion dürftest Du weitere Informationen finden.

  • Klassennamen sollten immer mit einem Großbuchstaben beginnen.


Was ist den eigentlich gerade das Problem?
  • Dass überhaupt nichts erscheint?
  • Oder dass das Video nicht im Hintergrund liegt?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 27-06-2011, 14:43   #9 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
Der Vollständigkeit halber noch ein Statusbericht:

Ich habe es nicht hinbekommen, dass das Video im Fullscreen nicht die übrigen Elemente der Timeline überdeckt. Ich habe als Workaround und da ich ohnehin Air verwende, beim Export eine feste Fenstergröße angegeben und alle Fenster-Knöpfe ausgeblendet. Da ich ein Terminal für eine fest vorgegebene Hardware schreibe, ist das ok, aber der Verhalten wurdert mich doch. Ich werde dem bei Zeiten mal auf den Grund gehen -- nach dem Abgabedatum von diesem Projekt.

Die Steuerung des Videos habe ich überarbeitet und alle Steuerelemente in die Videoplayerklasse überführt, dadurch nimmt die Zahl der Listener und Dispatcher signifikant ab.

Ich habe nun noch zwei Probleme, für die ich aber einen neuen Threat eröffne. Danke Martin für Deine Hilfe :-)
Seebold ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
air, cs5, darstellungsfehler, fullscreen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS4] links im fullscreen sichtbar was tun? masterace Flash Einsteiger 1 06-06-2009 19:31
Projektor -> Fullscreen -> Menü aber sichtbar Realtimefreak Flash 8 1 05-07-2007 10:09
fullscreen nicht fullscreen maksimo Flash MX 0 01-04-2004 20:11
Nicht Sichtbar rendolf ActionScript 1 4 31-10-2003 14:21


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele