Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS3 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-03-2010, 09:03   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
Ebenen Transparenzproblem

Hallo Gemeinde!

Ich habe ein etwas ungewöhnliches Problem und wollte mal fragen, ob jemand eine Lösung hat.

In einem Flashfilm lade ich per XML einiges an transparenten PNG-Bildern übereinander (mittlerweile sind es 35 Stück) in jeweils einen Movieclip, der jeweils zur Laufzeit erzeugt wird. Bis zu einer gewissen Anzahl ist das problemlos möglich. Wenn ich dann aber mehr Bilder lade, überlagern die neu geladenen Bilder die zuerst geladenen Bilder, obwohl ich keinerlei Fehler in der Ebenenzuweisung gemacht habe und auch die geladenen Bilder definitiv transparent sind.

Beispiel: ich habe 20 Bilder in 20 Movieclips mit unterschiedlichen Levels geladen. Wenn ich jetzt das 21. Bild in die 21. Ebene lade, überdeckt mir das 21. Bild das Bild der Ebene Nr. 1. Und das geht so weiter. Wenn ich dann allerdings mit den Movieclips was mache (Mouse-Event) dann werden die untersten Ebenen wieder sichtbar.

Deshalb meine Frage: hat einer von euch so ein Problem schon mal gehabt und eine Lösung gefunden?

Wie gesagt, ich kann definitiv ausschließen, dass es sich um ein Zuordnungsproblem mit den Ebenen handelt. Auch die PNG-Bilder sind definitiv transparent.

Danke für eure Hilfe und eure Tipps!
TomJay66 ist offline   Mit Zitat antworten
Alt 31-03-2010, 11:02   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ebenen heißen die Leisten in der Flash-Autorenumgebung. Die können aber zur Laufzeit nicht direkt verändert werden. Level sind Hauptzeitleisten wie der Level 0. Jeder Level kann über eine Million Tiefen addressieren, es wird also wohl in den meisten Fällen ein einziger Level ausreichen...

Tiefen kann man zur Laufzeit unter AS2 mit swapDepths beeinflussen, bzw. mit getDepth auslesen. Du könntest dir also zuerst mal eine Routine schreiben, die bspw. mit trace-Befehlen die aktuellen Tiefen deiner MCs ausgibt. Vielleicht offenbart sich dann schon ein Fehler. Und ansonsten verschieb die MCs auf den Tiefen.
PHP-Code:
this.createEmptyMovieClip("meinMC",1);
trace("Tiefe von meinMC="+meinMC.getDepth());

meinMC.swapDepths(1000);
trace("neue Tiefe von meinMC="+meinMC.getDepth()); 
  Mit Zitat antworten
Alt 31-03-2010, 13:55   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
Hallo Holger!

Erstmal danke für deine Antwort. Nachdem ich jetzt mal ein bissl ausprobiert habe, kann ich sagen, dass es definitiv ein Problem von Flash ist. Aus irgend einem Grund, der mir bislang verborgen ist, hat Flash CS 3 (zumindest bei mir) Darstellungsprobleme, wenn ich mehr als 23 transparente PNG-Dateien in einem Film habe. Und das ist völlig egal, ob ich die zur Laufzeit dynamisch lade oder aber die Bilder direkt in den Film importiere. Bei mir werden maximal 21 transparente PNG-Dateien angezeigt. Importiere ich mehr, dann werden die zuerst geladenen Level einfach nicht angezeigt.

Ich hab hier mal einen kurzen Codeschnipsel, wie ich die Bilder von extern lade:

PHP-Code:

function ladeBild10() { 
   
this.createEmptyMovieClip("container_01"10); 
   
with (this.container_01) { 
      
_x 470
      
_y 20
   }  
     
bild10 mein_xml.firstChild.childNodes[0].attributes.bildpfad;    
     
loadMovie(bild10"container_01");    
}

function 
ladeBild11() { 
   
this.createEmptyMovieClip("container_02"11); 
   
with (this.container_02) { 
      
_x 470
      
_y 20
   }  
     
bild11 mein_xml.firstChild.childNodes[1].attributes.bildpfad;    
     
loadMovie(bild11"container_02");    
}

// usw. 
Wenn ich dann irgendwann über die "magische" Anzahl von 21 Mocieclips mit eingebetteten PNG´s komme, dann wird ab "container_21" der "container_01" nicht mehr angezeigt. Das aber (wie gesagt) komischerweise nur bei transparenten PNG-Dateien.

Ich hab hier im Forum einen Post gefunden, wo bei Flash 8 anscheinend nicht mehr als 10 transparente PNG´s angezeigt werden konnten. Kann ja sein, dass das in CS 3 vielleicht auf 20 "aufgebohrt" wurde. Aber seltsam ist das schon, dass Flash da anscheinend Probleme hat.
TomJay66 ist offline   Mit Zitat antworten
Alt 31-03-2010, 14:26   #4 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Zur Frage -
a) was unterscheidet die Funktionen ab ladeBild21 von den vorherigen
b) liegen alle Bilder tatsächlich im Ordner
c) stimmt die XML?
d) Solltest Du unbedingt einen MovieClipLoader benutzen
e) Mach da bitte mal ne dynamische Funktion draus - ich stelle mir grad copy&paste mit sagen wir mal 60 Bildern vor(dann brauchst Du ja 60 funktionen!

Hier mal die dynamischere Variante (mit MovieClipLoader):
PHP-Code:
var mcLoader=new MovieClipLoader();
var 
loadListener=new Object();
loadListener.onLoadInit=function(target){
  
with (target) { 
      
_x 470
      
_y 20
   }  ;
};
mcLoader.addListener(loadListener);

function 
ladeBild(num) { 
   
mc=this.createEmptyMovieClip("container"+numnum+1); 
 
     
picPath mein_xml.firstChild.childNodes[num].attributes.bildpfad;    
     
loadclip(picPath,mc);    

Der Aufruf funktioniert dann so:
PHP-Code:
ladeBild(1
LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.

Geändert von andrelehnert (31-03-2010 um 14:27 Uhr)
andrelehnert ist offline   Mit Zitat antworten
Alt 01-04-2010, 12:50   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
Hallo André!

Also, dann mal der Reihe nach:

zu a) die Funktionen unterscheiden sich in keinster Weise von einander. Von daher kann ich da einen Fehler ausschließen

zu b) Ja, die Bilder liegen alle im selben Ordner

zu c) Auch die XML stimmt.

zu d + e) Da nehme ich sehr gerne deine Verbesserungsvorschläge anund sage einfach mal "DANKE"!

Das habe ich auch schon getestet, dass ich mal die zuletzt zu ladenden Bilder bzw. deren Funktionen im AS auskommentiert habe und mich dann schrittweise rangearbeitet habe. Und ab einer bestimmten Anzahl von Bildern wurden die untersten Bilder nicht mehr angezeigt, sondern verschwanden hinter den anderen Bildern. Ich hab dann auch mal folgendes ausprobiert: ich habe ein paar einfache transparente PNG´s erstellt und die einfach ohne Loader-Funktion oder ähnliches direkt auf die Bühne importiert. Und siehe da: es werden bei mir tatsächlich nur maximal 23 Bilder angezeigt. Wenn ich dann das unterste Bild so verschiebe, dass es teilweise hinter den oberen vorschaut, dann ist da nichts mehr mit Transparenz, sondern das unterste Bild wird nur teilweise angezeigt. Und genau das ist mein Problem. Ich glaube von daher nicht, dass es an meinen Loader-Funktionen oder an meiner XML liegt, sondern vielmehr, dass es ein Problem von Flash ist.

Mittlerweile habe ich auch mal an Adobe geschrieben, allerdings noch keine Antwort erhalten. Sollte ich da was bekommen, halte ich euch auf jeden Fall auf dem Laufenden.

Geändert von TomJay66 (01-04-2010 um 13:00 Uhr)
TomJay66 ist offline   Mit Zitat antworten
Alt 01-04-2010, 13:03   #6 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Darauf wirst Du auch keine Antwort erhalten....

Du kannst ne Million Bilder laden, wenn Du willst (alles kein Problem und auch schon x-mal gemacht, naja keine Million aber hunderte ) ...

hast Du meine Fkt. implementiert?

wenn ja und wenn dann immer noch der gleiche Fehler auftaucht,
hast Du wie gesagt entweder in Deinem Ordner, Deiner xml oder Deiner xml-Parse-Funktion einen Fehler.

Wie sieht denn Dein XML-Parser aus? Du hast unter Garantie irgendwo einen flüchtigen Schreibfehler.

Ein Flash-Bug ist in diesem Fall wirklich auszuschließen.

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.

Geändert von andrelehnert (01-04-2010 um 13:04 Uhr)
andrelehnert ist offline   Mit Zitat antworten
Alt 01-04-2010, 15:38   #7 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
soweit ich gehört habe ist die anzahl teiltransparenter ebenen übereinander in flash auf 24 begrenzt (egal ob ebenen, movieclips whatever), das würd ich auch die erwähnten 23 erklären...

ist aber kein bug
ING ist offline   Mit Zitat antworten
Alt 01-04-2010, 15:53   #8 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Meiner Meinung nach stimmt das nicht. Hier mal ne swf mit über 40 teiltransparenten png´s übereinander...
Angehängte Dateien
Dateityp: swf pngTEST.swf (4,4 KB, 11x aufgerufen)
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 01-04-2010, 15:56   #9 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
kann sein das es in den neueren versionen eine anhebung gab, in swf8 warens wohl 24, find aber auch nichts offizelles dazu...

vllt. triffts auch nur zu wenn die direkt übereinander liegen?!
ING ist offline   Mit Zitat antworten
Alt 01-04-2010, 16:15   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
Das trifft wirklich nur zu, wenn die direkt übereinander liegen. Wenn die PNG´s verteilt sind, werden die auch sauber mit der Transparenz angezeigt. Nur halt eben, wenn sie unmittelbar übereinander liegen, tritt das Problem (zumindest bei mir) auf.

@ André: ich hab mal dein Skript bei mir eingebaut. Es läuft, aber auch hier habe ich das Problem mit der Transparenz der einzelnen PNG´s. Bei mehr als 22 Ebenen ist Schluß.

Ich habe auch mal den älteren Threat gefunden, wo es auch um das selbe Problem ging:

KLICK HIER

Geändert von TomJay66 (01-04-2010 um 16:28 Uhr)
TomJay66 ist offline   Mit Zitat antworten
Alt 01-04-2010, 17:03   #11 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
ja krass, wenn das wirklich noch stimmt!
Was macht man denn mit über 24 gleich großen png übereinander?

Ich würds gern mal testen, aber weiß nicht genau wie ich die pngs gestalten soll, daß man das kontrollieren kann

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 01-04-2010, 17:42   #12 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Jau, habs jetzt auch endlich begriffen

ab dem 24-ten ist Schluss.

ABER....

Stellt mal bei den Container-MCs cacheAsBitmap auf true - DANN Gehts!

LG ANdré

Hier nochmal das aktualisierte Script:
PHP-Code:
var mcLoader=new MovieClipLoader();
var 
loadListener=new Object();
loadListener.onLoadInit=function(target){
target.cacheAsBitmap=true;  
with (target) { 
      
_x 470
      
_y 20
   }  ;
};
mcLoader.addListener(loadListener);

function 
ladeBild(num) { 
   
mc=this.createEmptyMovieClip("container"+numnum+1); 
 
     
picPath mein_xml.firstChild.childNodes[num].attributes.bildpfad;    
     
mcLoader.loadClip(picPath,mc);    

__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.

Geändert von andrelehnert (01-04-2010 um 17:44 Uhr)
andrelehnert ist offline   Mit Zitat antworten
Alt 01-04-2010, 17:50   #13 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
nice
ING ist offline   Mit Zitat antworten
Alt 06-04-2010, 08:34   #14 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
Hallo André!

Erstmal danke für Deine Mühe. Leider geht es immer noch nicht.

Kurz zur Erklärung, wofür ich überhaupt so viele transparente PNG´s übereinander brauche. Ich entwickle gerade für meinen Brötchengeber ein Tool, mit dem man Inlineskates "customizen" kann, soll heißen, individuell mit verschiedenen Austauschparts zusammen stellen kann. Ich habe letztes Jahr schon so ein Tool entwickelt, da allerdings mit weitaus weniger Teilen, wo eben dieses Problem mit den Transaprenzen (noch) nicht auftrat. Nun hat mein Brötchengeber mir gesagt, dass ich so ein Tool für einen anderen Skate bauen soll, bei dem aber wesentlich mehr Teile veränderbar sind. Teilweilse sind bei einem einzigen Part mehrere Teile verschieden veränderbar. Von daher hab ich schon die Notwendigkeit, so viele transparente PNG´s übereinander zu legen.

Damit mein Problem ein bissl deutlicher wird, hab ich mal die Quelldaten hochgeladen. Die Links in der XML sind absolut, sollten eigentlich von überall aus funktionieren. Wenn ihr die Flashdatei ausprobiert, seht ihr, dass bis zu einer gewissen Anzahl geladener Bilder diese auch angezeigt werden, aber irgendwann werden die zuerst geladenen eben nicht mehr angezeigt. Ach ja: das Tool ist momentan noch bei weitem noch nicht so weit, das man es als "fertig" bezeichnen könnte. Es funktionieren daher bei weitem noch nicht alle Sachen.

By the way: ich bin mir sicher, dass das Tool wesentlich einfacher zu programmieren wäre für jemanden, der sich wirklich auskennt. Ich bin nur noch nicht so tief in der Materie, als dass ich mich da einen guten Wissensstand mein eigen nennen könnte. Also bitte nicht über meine "Programmierkünste" lachen! Verbesserungsvorschläge werden aber gerne angenommen. Learning by selber Fehler maching oder so! Ich hab mir das "Programmieren" mehr oder weniger selbst beigebracht, von daher...
Angehängte Dateien
Dateityp: fla customize_xsjado.fla (811,5 KB, 2x aufgerufen)
Dateityp: zip xml.zip (663 Bytes, 2x aufgerufen)

Geändert von TomJay66 (06-04-2010 um 09:11 Uhr)
TomJay66 ist offline   Mit Zitat antworten
Alt 06-04-2010, 10:52   #15 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Hi!

Ja, sieht ein bisschen unflexibel aus, das Ganze - aber kann man schon so machen...

Hier die Änderungen... pngs werden alle angezeigt

BTW: onEnterFrame's löscht Du mit:
PHP-Code:
delete onEnterFrame 
LG ANdré
Angehängte Dateien
Dateityp: fla customize_xsjado_mod.fla (640,0 KB, 1x aufgerufen)
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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
Coverflow Transparenzproblem Goldesel Flash 8 1 21-04-2009 19:17
Swish-max Transparenzproblem ADDY-B Flash Einsteiger 2 18-04-2006 09:53
Transparenzproblem mit PageFlip Lawry Flash 8 5 31-10-2005 16:54
transparenzproblem mit vielen pngs zungenbrecher Flash MX 2004 1 11-08-2005 13:52
Mac User. Bitte Testen ! Transparenzproblem anicon Flash MX 9 05-02-2004 10:43


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele