Chrome Flash Player erstellt transparente Rechtecke im Flash-Fenster

8

Ich stoße auf einen seltsamen, sehr schwierig zu reproduzierenden Grafikfehler in einem Flash-Videoplayer !, bisher nur in Chrome.

Das graue Rechteck unter "Enter the building" zeigt die Hintergrundfarbe des HTML-Divs, in dem der Flash-Player sitzt. Unter dem Link "Where are we" gibt es einen kleineren. Dies sind Sprites (die mehrere andere Sprites und Anzeigeobjekte enthalten) mit einer animierten Hover-Animation (sie bewegen sich langsam zu einem zufälligen Punkt, der einen bestimmten Bereich ihres Ursprungs aufweist). Der Glitch ändert sich mit ihnen und verschwindet manchmal.

Was ist das seltsamste, das die gesamte Flash-Komponente durchschaut? Ich habe diesen Code Wird ausgeführt, wenn der Videoplayer erstellt wird:

%Vor%

Es sollte also eine helle Farbe auf der Rückseite des Videoplayers sein, und ich habe bestätigt, dass es da ist, wenn ich den Videoplayer nicht lade. Allerdings wird diese helle Farbe nicht angezeigt, sondern das Hintergrund-Div, das den Player enthält, scheint durch.

Das macht absolut keinen Sinn für mich ... und ich habe keine Ahnung, wie man das debuggt. Alles, was ich weiß ist, dass das Aussehen des Glitch hängt davon ab, wo die Text-Links auf dem Bildschirm schweben.

Der Flash ist in WMODE transparent geladen, was wir brauchen, weil er auf der Seite, die halbtransparent ist, einen erweiterbaren "Flügel" hat.

BEARBEITEN:

es ist live auf www.48hourgames.com. Sobald Sie ein Konto erstellt haben, sehen Sie den Videoplayer, der mit dem obigen Screenshot endet.

    
joon 07.12.2012, 17:57
quelle

5 Antworten

5

Dies ist ein Problem mit dem Pepper Flash Player. Adobe und Google arbeiten schon seit geraumer Zeit daran, wie sie Flash am Leben halten und auf der Linux-Plattform arbeiten wollen.

Pepper Flash ist leider sehr fehlerhaft. Irgendwann im Sommer dieses Jahres wurde Pepper Flash zum Standard-Flash-Plugin in Chrome für alle Betriebssysteme. Es gibt viele Probleme, für die es keine wirklichen Lösungen gibt, außer dass es deaktiviert wird (und hofft, dass Adobe / Google sie anspricht).

Um Pepper Flash zu deaktivieren:

  • gehe zu: chrome: // plugins
  • klicken Sie rechts oben auf das Symbol Details
  • finden Sie den Flash Player-Plugin-Bereich, in dem Sie wahrscheinlich mehrere Flash-Versionen installiert haben. Ich habe gerade Chrome installiert, um zu verifizieren, dass es das Problem war, und hatte Pepper Flash plus 2 "normale" Versionen von Flash.
  • deaktivieren Sie das Flash-Plugin mit "PepperFlash" im Pfad.
Sunil D. 20.12.2012 16:11
quelle
4

Ich konnte das Problem sehr zuverlässig reproduzieren. Ein paar Ideen:

  • Sounds wie wmode transparent sind möglicherweise wiederkehrend problematisch. Vielleicht könntest du das Flash Element mit 100% Breite versehen und einen nahtlosen Hintergrund in den linken / rechten Rändern machen. In Flash können Sie verhindern, dass Ihr Inhalt über stage.scaleMode = StageScaleMode.NO_SCALE; skaliert wird. Wenn der Flash die ganze Breite durchbricht, könntest du wmode transparent loswerden und es könnte gut sein, zu gehen.
  • Haben Sie versucht, cacheAsBitmap auf true für Ihre zwei Schaltflächen einzustellen, die den Film überlagern?
  • Da die Artefakte nur am Ende des Films angezeigt werden, wenn es ein Standbild ist, könnte es möglicherweise funktionieren, wenn cacheAsBitmap auf true für den Film gesetzt wird, wenn dieser Endzustand erreicht wird?
  • Vielleicht den Film auslagern, wenn er den endgültigen Zustand mit einem PNG-Bild erreicht, das gleich aussieht?
  • Vielleicht die beiden Buttons mit PNG-Bildern austauschen, wenn sie nicht schon PNG-Bilder sind?

Wenn diese nicht funktionieren ... verzweifelter werden.

  • Entfernen Sie das Seitenmenü (Flash-Element wird erweitert) aus der SWF-Datei in die eigene SWF-Datei und legen Sie es über die Film-SWF-Datei. Auf diese Weise kann die SWF-Datei " wmode transparent " verlieren und der Fehler wird möglicherweise nicht im Seitenmenü angezeigt.
  • Das Seitenmenü könnte HTML sein.
    • Die Rollover-Status können HTML-Elemente sein.
    • Oder das Seitenmenü könnte das Flash-Element aufrufen, um die Rollover-Texte umzuschalten. Der Aufruf in Flash müsste über die ExternalInterface -Klasse ( Details ).

Da ich keinen Code zum Testen habe, sind das alles ein paar Aufnahmen im Dunkeln .

Ich würde mit den cacheAsBitmap verwandten Ideen beginnen. Dann gehe auf die PNG-Ideen (Buttons, letzter Frame). Versuchen Sie von dort aus die Vollversion des Flash-Elements. Wenn diese nicht funktionieren, sollten Sie ein neues Design in Betracht ziehen. Wenn das keine Option ist, würde ich das Seitenmenü mit Variationen aufteilen, wie oben beschrieben.

    
tiffon 20.12.2012 23:36
quelle
2

Ich habe dieses Problem heute mit dem neuesten Flash Player Version 11.6 + Chrome 27. In einigen Computern funktioniert es, in einigen anderen nicht, das macht es sehr schwierig, das Problem aufzuspüren, weil es nicht auf meiner Seite passiert.

Ich glaube, das ist ein Flash-Bug, nicht Chrom, denn wenn ich mit der rechten Maustaste klicke - & gt; Vergrößern, Rechtsklick - & gt; Verkleinern Sie die schmutzigen Flecken verschwinden

Also sah ich mich nach einer schmutzigen schnellen Lösung um.

Ausprobiert cacheAsBitmap Methode: funktioniert nicht (dieser Fix funktioniert für "Schwarz, wo Transparenz" -Problem, aber nicht für dieses Problem).

Versucht die zwei Bilder -Methode: funktioniert nicht (nicht sicher warum)

Ich habe endlich einen Weg gefunden, das zu reparieren (mehrfach getestet):

Da die schmutzigen weißen Flecken nur dann auftauchen, wenn die Animation aufhört, setze ich einen transparenten Tween-Clip auf die Bühne und lasse ihn für immer laufen . Und es funktioniert.

p / s: Eigentlich habe ich versucht, das als Kommentar anstatt als Antwort hinzuzufügen, aber ich kann keinen Weg finden, es ist komisch.

    
thienhaflash 04.06.2013 04:01
quelle
0

Ich habe dieses Problem heute bei Google Chrome 31.0.1650.63 beim Spielen meines Puzzlespiels festgestellt. Normalerweise benutze ich diesen Browser nicht, daher sollte Flash in jedem Browser genauso funktionieren. Daher war ich ein bisschen überrascht, von weißen Rechtecken zu hören, die über mein gesamtes Spiel verteilt sind. Das Problem wurde durch Setzen von wmode auf undurchsichtig statt transparent behoben.

    
M.A.D.017 30.12.2013 14:00
quelle
0

auch hier, in meinem Videoplayer.

nur in chrome pepper flash, und nur wenn die swf mit transparentem wmode eingebettet ist.

Heute habe ich einen Fix / Workaround / Hack im Web gefunden, mit dem ich leben kann:

"Wenn Sie dieses Problem mit einem einfachen Hack umgehen möchten, können Sie einen MovieClip zeichnen, bei dem es sich um eine transparente Füllung handelt. Und bei jedem Rahmen wird die Eigenschaft 'alpha' angezeigt. Da die Füllung transparent ist, ist sie die Eigenschaft 'alpha' macht nichts, außer erzwingt ein Vollbild-Redraw, um die Alpha-Eigenschaft des MovieClips zu aktualisieren, was wiederum ein fehlerhaftes Rendering behebt, da wmode transparent ist.

Wenn Sie moueEnabled = false hinzufügen, stellen Sie sicher, dass der Hack keine bestehenden Mausereignisse beeinträchtigt.

%Vor%

"

Quelle: Ссылка

    
PeterErdogyaraki 07.02.2014 22:33
quelle