Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-09-2008, 17:55   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2008
Beiträge: 7
Bildmaße auslesen

Hi,

ich weiß es gibt hier enorm viele Beiträge zu diesem Thema und ich hab sie mittlerweile vermutlich alle gelesen, aber ich habs immernoch nicht hinbekommen .

Es geht darum, dass ich die Maße einer externen JPG Bilddatei auslesen möchte bevor es in einen Movieclip geladen wird, um zu wissen, ob ich den Querformat-MC oder den Hochformat-MC als Ziel benutzen muss.

Immerhin habe ich schon herausgefunden, dass ich auf die Breite und Höhe des Bildes erst zugreifen kann, wenn es von Flash schon oder zumindest zu einem Teil geladen wurde.
Da meine Bilder aber nicht besonders groß sind (sowohl Dateigröße als auch Auflösung), lohnt sich dafür kein Preloader.

Kann mir da jemand nen konkreten Vorschlag machen? In den meisten anderen Threads zu diesem Thema sind die Antworten immer sehr allgemein und für einen Anfänger schwer umzusetzen.

Vielleicht gehts ja auch mit nem externen PHP Script. Ich brauch im Grunde wirklich nur die beiden Werte für Hight und Width!

1000 Dank im Voraus!

Geändert von Daimos (25-09-2008 um 17:56 Uhr)
Daimos ist offline   Mit Zitat antworten
Alt 26-09-2008, 04:07   #2 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
mit der MovieClipLoader-Klasse ist die Bild-Maße auch schon vor der Darstellung, also dem kompletten Laden, bekannt. Versuche es damit einmal. Mit PHP kann man das auch machen, aber das ist zu umständlich...du würdest ja erst dein PHP laden müssen um dann das Bild zu laden...nenene...gleich mit Flash über die MovieClipLoader-Klasse.

Gruß ksw24

edit: ich weiß nur leider nich, ob diese in AS1 verfügbar ist

Geändert von ksw24 (26-09-2008 um 04:08 Uhr)
ksw24 ist offline   Mit Zitat antworten
Alt 26-09-2008, 08:08   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2008
Beiträge: 7
Also in der Flashhilfe von MX 2004 hab ich "MovieClipLoader.loadClip()" gefunden, aber mir ist noch nicht ganz klar, wie ich darüber an die _width und _height parameter komme.

Die Sache ist ja auch, dass ich eigentlich diese Werte schon kennen muss, bevor ich mich für einen Ziel-MC entscheide. Oder kann ich das JPG irgendwie vorher in einen Container laden und dann auf den entsprechenden breitformat bzw. hochkant Movieclip übertragen, ohne es nochmal laden zu müssen?

Danke im Voraus!
Daimos ist offline   Mit Zitat antworten
Alt 26-09-2008, 09:24   #4 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
schau dir mal weiter Funktionen der MovieClipLoader-Klasse an, wie onLoadInit etc...

...ich verstehe das aber eh noch nicht so ganz was du vor hast. Wenn du Beispielsweise einen Bilderrahmen über dein Bild legen möchtest, ohne das Bild zu verändern (sondern halt den Rahmen) kannst du entweder diesen "resizen" oder halt einen MC_RAHMEN mit 2 Frames, je nachde Format, auf Frame 1 oder 2 springen lassen.

Gruß ksw24
ksw24 ist offline   Mit Zitat antworten
Alt 27-09-2008, 22:01   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2008
Beiträge: 7
Danke soweit schonmal. Das mit dem MC_RAHMEN in 2 Frames hat mir definitiv schonmal weitergeholfen! Jetzt versuche ich also über "MovieClipLoader.loadClip()" mein Bild in der Galerie zu laden und habe dazu nach Flash Anleitung folgendes gecoded:

Code:
var Gross_Bild_Loader = new MovieClipLoader ();
Gross_Bild_Listener = new Object();

Gross_Bild_Listener.onLoadComplete = function(Galerie_Bild) {
   if(Galerie_Bild._height >= 340){
	   Galerie_Bild.gotoAndStop(2);
	   Galerie_Bild._x = -159.9;
	   Galerie_Bild._y = -247.3;
   }
};

Gross_Bild_Loader.addListener(Gross_Bild_Listener);
Gross_Bild_Loader.loadClip("Galerie/"+_level0.ordner+"/Bild"+_level0.Galerie_Bild_Gross+".jpg", "Galerie_Gross_Breit.Galerie_Bild_Breit_Platz")
(Die Variable "_level0.ordner" enthält den jeweiligen Ordner aus dem die Bilder benutzt werden und die Variable "_level0.Galerie_Bild_Gross" die Bildnummer)

Das blöde ist nur: Es funktioniert nicht! Das Bild wird nicht reingeladen in meinen MC.

Mit folgendem Code klappt es,

Code:
loadMovie("Galerie/"+_level0.ordner+"/Bild"+_level0.Galerie_Bild_Gross+".jpg", "Galerie_Gross_Breit.Galerie_Bild_Breit_Platz")
aber damit kann ich ja jetzt immernoch nicht herausfinden, ob mein Bild nun Hoch- oder Querformat hat und ob ich dementsprechend meinen Platzhalter-MC verändern muss.

Woran kann es liegen, dass es mit der loadClip-Geschichte nicht klappt? Warum wird mein Bild da garnicht erst geladen, obwohl URL und Ziel gleich sind!?

Danke im Voraus!

Geändert von Daimos (27-09-2008 um 22:03 Uhr)
Daimos ist offline   Mit Zitat antworten
Alt 01-10-2008, 01:23   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2008
Beiträge: 7
Nochmal hi,

wäre echt cool, wenn mir irgendwer weiterhelfen könnte. Wollte mit der Seite die ich grade baue demnächst online gehen und muss dafür dringend noch diese Galerie fertig stellen.

Vielleicht seh ich ja auch den Wald vor lauter Bäumen nicht oder mach irgend einen anderen dummen Fehler, aber wenn sich trotzdem jemand kurz die Zeit nimmt, mich darauf hinzuweisen, fände ich das prima!

Danke euch im Voraus!

Hier übrigens der Link zu dem was ich vorhabe: http://www.give-me-five.net/test bin auch für Feedback und Kritik offen!
Daimos ist offline   Mit Zitat antworten
Alt 01-10-2008, 18:35   #7 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
also wenn du loadMovie() nutzen möchtest, dann brauchst du einen "extra" preloader, um herauszufinden, welche Maße das Bild hat.

Einen solchen würdest du mit der MOvieClipLoader-Klasse nicht mehr benötigen. Dafür is onLoadInit() da.

loadMovie:
ActionScript:
  1. meinFilm.loadMovie("meinBild.jpg");
  2. meinFilm.onEnterFrame=function(){
  3.     if(this.getBytesLoaded() >= this.getBytesTotal() && this._width > 0){
  4.         delete this.onEnterFrame;
  5.         trace("Breite: "+this._width+" / Höhe: "+this._height+);
  6.     }
  7. }

MovieClipLoader (von agedoubleju):
ActionScript:
  1. //leeren MC erstellen
  2. this.createEmptyMovieClip("con",1);
  3.  
  4. //Lauscher-Objekt erstellen
  5. var mclListener:Object = new Object();
  6.  
  7. //MovieClipLoader-Instanz erstellen
  8. var mcLoader = new MovieClipLoader();
  9.  
  10. //Lauscher auf die Instanz setzen
  11. mcLoader.addListener(mclListener);
  12.  
  13. //Bild nachladen
  14. mcLoader.loadClip("test.jpg", this.con);
  15.  
  16. //während des Ladens bspw. um Ladebalken o.ä. zu aktualisieren
  17. mclListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
  18.     var prozent = int(bytesLoaded*100/bytesTotal);
  19.    _root.ausgabe.text = ""+prozent+" %";//ausgabe ist der Instanzname, nicht die var (die var bitte löschen)
  20. }
  21.  
  22. //Bild ist geladen und MC wurde befüllt:
  23. mclListener.onLoadInit = function(mc:MovieClip) {
  24.     trace("fertig, beladen wurde "+mc);
  25. }
Hier kannst du mal schauen, ob die Maße schon bei "onLoadProgress" bekannt ist, ansonsten ist sie das auf jeden Fall bei "onLoadInit".

Das müsste Helfen - Gruß ksw24

Geändert von ksw24 (01-10-2008 um 18:37 Uhr)
ksw24 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele