| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 13
| Anfängerfrage: anzuzeigende Bildgröße von externem Bild ändern
Hi in die Runde, ich versuche mich als langjähriger PHP-Scripter seit kurzem an AS3 mit folgender Aufgabe: Ich möchte externe Bilder verschiedener Größen einlesen und in eine Art blätterbare Fotogalerie einbinden. Das Einlesen der Bilder klappt, auch voll dynamisch, doch die verschiedenen Größen stellen mich gerade vor ein Problem, wenn ich ein externes Bild lade und die Größe ändern will, verschwindet es schlicht in der Anzeige. Lasse ich mir die Größe des Bildes (width oder height) ausgeben, steht diese auf 0. Hier der aktuelle vereinfachte Script zum zeigen dieses Problems: var title:TextField = new TextField(); title.name="TextFeld"; title.text="Dies ist ein Test"; var pict:Loader = new Loader(); var url:URLRequest = new URLRequest("banana.jpg"); pict.load(url); pict.name = "banana"; this.addChild(title); title.x=0; title.y=200; this.addChild(pict); pict.width=400; pict.x=100; pict.y=0; Der Stolperstein ist der Befehl "pict.width=400;", der dafür sorgt, das das Bild nicht mehr angezeigt wird. Nehme ich den raus, wird das Bild in der Originalgröße angezeigt. Was mich verwirrt ist, das die Positionierung funktioniert, aber die Größenangabe zum verkleinern oder vergrößern nicht zu gehen schein. Wer mag mir hier einen Rat geben? Vielen Dank Rainer |
| | |
| | #2 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Du darfst Dein Bild erst skalieren wenn es geladen ist. Vorher ist die Breite nämlich nicht definiert und wenn sie umgerechnet wird wird scaleX und scaleY auf den Defaultwert 0 gesetzt. Also: Eventlistener zur Loaderklasse hinzufügen und das Bild erst dann skalieren, wenn es da ist!
__________________ 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! |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 13
|
Hi Martin, danke für Deine Antwort. Darf ich Dir noch ein paar Verständnisfragen dazu stellen? (irgendwie komme ich mir grad vor, als würde ich durch ein Schlüsselloch einen Hausflur tapezieren) Es geht mir darum ein Bild in der Breite (und damit in der Höhe) anzupassen, wenn es falsche Werte aufweist. Welcher Befehl genau sorgt für das Laden, nachdem die Höhe / Breite gesetzt werden kann? Ich dachte, es wäre das addChild. Das was du schreibst, deutet darauf hin, das das noch gar nicht ausgeführt ist, wenn ich die Breite ändere, richtig? Also ein addeventlistener, damit ich erst dann die Breite ändere, wenn es geladen ist, richtig? Urks, nun habe ich mir gerade die Hilfe dazu durchgelesen, dann der Parametertyp (wo finde ich die möglichen Typen?), dann der Name (gleiche Frage?) und dann dahinter das was dann ausgeführt werden soll, also die Breitenänderung, richtig so? Also pict.addeventlistener(Event,Event.name, pict.width=300); Danke für Deine Hilfe Rainer Geändert von Sunyani (19-05-2010 um 14:28 Uhr) |
| | |
| | #5 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Für das Laden sorgt logischerweise: Code: var url:URLRequest = new URLRequest("banana.jpg");
pict.load(url); In dem Augenblick wo der obengenannte Befehl aus geführt wird, sendet Flash eine Anfrage an den Server und der beginnt die Daten des Bildes zu senden. Da wir auf Clientseite sind und das ganze asynkron geschieht, mach Flash einfach weiter während der Server noch Daten sendet (Sonst müsste ja der Flashfilm einfrieren bis die sagen wir 3MB Deines Bildes geladen sind). Das heißt aber, dass zu dem Zeitpunkt wo Du die Größe setzt willst noch gar kein Bild da ist. Du musst also einen EventListener hinzufügen, der wartet bis dass Bild komplett geladen wurde und es erst dann anzeigt und skaliert. Wie das geht steht in der Flash-Hilfe zur Loader-Klasse.
__________________ 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 (19-05-2010 um 14:28 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 13
|
Hi Martin und Sascha, soweit verstanden, nun hängt es an der Synthax. Ich füge nun nach dem Load - Befehl den EventListener zu: pict.addEventListener(Event.COMPLETE, pict.width=200); und bekomme den Fehler: 1067: Implizite Umwandlung eines Werts des Typs Number in einen nicht verwandten Typ Function. Kann der zweite Parameter nur eine Funktion sein und nicht der Befehl selbst? Viele Grüße Rainer |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Oct 2001 Ort: Bayreuth
Beiträge: 455
|
pict.addEventListener(Event.COMPLETE, pict.width=200); nee so nicht .. loader.ddEventListener(Event.COMPLETE, irgendeine_funktion); function irgendeine_funktion(e:Event):void{ pict.width=200; } auf die art... gruß sascha
__________________ Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer ) Geändert von RAMSEI (19-05-2010 um 14:53 Uhr) |
| | |
| | #8 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
wohl eher so: PHP-Code:
__________________ 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 (19-05-2010 um 15:04 Uhr) |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 13
|
Hi Sascha, wahrscheinlich rollst du schon mit den Augen wegen der vielen Schläuche, mit denen ich jongliere. Nun sieht mein Script so aus: function irgendeine_funktion(e:Event):void{ pict.width=200; } var title:TextField = new TextField(); title.name="TextFeld"; title.text="Dies ist ein Test"; var pict:Loader = new Loader(); var url:URLRequest = new URLRequest("banana2.jpg"); Loader.addEventListener(Event.COMPLETE, irgendeine_funktion); pict.load(url); pict.name = "banana"; this.addChild(title); title.x=0; title.y=200; this.addChild(pict); und ich bekomme diesen Fehler: 1061: Aufruf für eine möglicherweise nicht definierte Methode addEventListener über einen Verweis mit statischem Typ Class. Hängt das an dem e:Event ? Oder ist die Funktion falsch deklariert? Wenn ich die swf aufrufe, ist das Bild in groß kurz zu sehen und verschwindet dann ... DANKE!!! Rainer Geändert von Sunyani (19-05-2010 um 15:09 Uhr) |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Oct 2001 Ort: Bayreuth
Beiträge: 455
|
nein ich roll nicht meine Augen, ich bin auch am As3 lernen .. PHP-Code: gruß sascha
__________________ Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer ) Geändert von RAMSEI (19-05-2010 um 15:15 Uhr) |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Jul 2010
Beiträge: 2
|
Und was tue ich, wenn das Bild in einem Objekt steckt? Ich erzeuge mittels einer Klasse einen Button (der von MovieClip erbt, per "extends MovieClip"); Dieser enthält ein Bild, ein Shape, einen Rollover-Effekt und ein paar Funktionen. Das funktioniert auch prima. Wenn ich aber versuche den Button per as3 aus meiner dokument-klasse raus zu skalieren verschwindet er. Die .height und .width-properties sind und bleiben 0, egal was ich mache. Hier meine Button-Klasse (reduziert aufs wesentliche): PHP-Code: ![]() Ich habs sogar schon damit versucht, nen eigenen setter dazuzufügen, der so aussah: PHP-Code: |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| physikalische bildgröße vor´m upload ändern | figure8 | ActionScript 3 | 2 | 20-08-2008 17:39 |
| bildgröße bei externem bild | wertzut | Flash 8 | 2 | 31-12-2005 10:23 |
| Bildgröße ändern | Rothbarsch | Am Rande | 3 | 27-08-2003 15:46 |
| bild geladen abfragen/bildgröße | Eva | ActionScript 1 | 9 | 22-05-2003 13:23 |
| nochmal frage: popup-fenster mit bild autom. bildgröße ohne php? | shck | Flash 4 und Flash 5 | 2 | 06-12-2001 11:39 |