ERLEDIGT
JA
JA
ANTWORTEN
18
18
ZUGRIFFE
557
557
EMPFEHLEN
-
Hallo ihr,
also ich arbeite mit Flash MX 2004 Professional. Ich generiere TextAreas und Labels per ActionScript was auch prima funktioniert. Nun hab ich auch Bilder die ich darstellen möchte. Auch erstmal kein Problem. Vielleicht nicht schön gelöst, aber Bilder werden dargestellt. Ich habe die Bilder in einer Grösse zur Verfügung und möchte sie für meinen Film quasi in Breite und Höhe passend darstellen. Ich habe es mit folgendem Code probiert:
Code :1 2 3 4 5 6 7 8 9
if(aNode.nodeName == "Bild"){ _root.createClassObject(Label, "Bild", 5); _root["Bild"].loadMovie("pics/meinBild.jpg"); //_root["Bild"].setSize(997, 456); _root.Bild._width = 150; _root.Bild._height = 32; _root.Bild._x = 20; _root.Bild._y = 280; }//end if
setSize hatte irgendwie gar keinen Effekt. in setSize steht die Grösse in der ich das Bild eigentlich haben will, aber dann ist mein Bild leider 10x so gross wie mein Content und es hat mit 150/32 ungefähr die Grösse, die ich brauch, aber es sollte ja eigentlich 997/456 sein. Ich frag mich nun, wie Flash skaliert also ob der das irgendwie in Abhängigkeiten berechnet oder welche Grössenangaben der benutzt bzw. muss ich in mein Script noch eine Skalierung einfügen und wenn ja welche? Weil so ist das irgendwie Schmou...
Gruss
-
Hi,
Du musst schon warten, bis das Bild komplett geladen ist. Warum? Nun, wenn Du loadMovie aufrufst und das Bild direkt danach skalierst, wird Deine Skalierung wieder überschrieben, sobald das Bild geladen ist.
Beispiel:GrußPHP-Code:// gehen wir davon aus, dass "bla" ein
// leerer MC ist
bla.loadMovie("blubb.jpg");
this.onEnterFrame = function() {
// Wenn Breite und Höhe größer 10 sind,
// können wir annehmen, das das Bild geladen ist:
if (bla._width > 10 && bla._height > 10) {
bla._width = 150; // und gefahrlos...
bla._height = 32; // ... neu skalieren!
delete this.onEnterFrame;
}
}
.
-
Mh das ist ja interessant...
Woran könnte es liegen wenn beim angepassten Script diese Meldung kommt:
Code :1 2
Keine Eigenschaft mit dem Namen 'onEnterFrame' vorhanden. this.onEnterFrame = function() {
Gruss
-
... "this" zeigt nicht auf einen MovieClip.

Um zu erkennen, worauf es bei Dir zeigt und was zu ändern wäre, müsste ich mehr (am besten die ganze Datei) sehen. Ich nehme an, Du führst das Ganze in einer Funktion aus; Ereignisfunktionen sind allerdings oft anderen Objekten zugeordnet.
Gruß
P.S.: vielleicht hilft schon ein simples:.PHP-Code:_root.onEnterFrame = function() {
-
Okay, wie immer blick ich Freitags am späten Nachmittag nicht mehr so ganz durch

Ich habe ActionScript das File als Textdatei angehängt...
Danke und Gruss
-
Hi,
folgendes dürfte funktionieren:GrußPHP-Code:var img = _root["Bild"].createEmptyMovieClip("img", 1);
img.loadMovie("pics/meinBild.jpg");
_root["Bild"].onEnterFrame = function() {
if (this.img._width > 10 && this.img._height > 10) {
// Hier skalieren
delete this.onEnterFrame;
}
}
.
-
Super jetzt funktioniert es!
Danke schön!
Schönes Wochenende!
-
Hallo,
nach langer langer Zeit und etwas umgeschriebener Code, funktioniert die Sache mit dem skalieren irgendwie nicht mehr. Das Bild wird geladen, aber es ist nicht skalierbar, dh er geht gar nicht erst in die Funktion innerhalb der skaliert werden soll...
HILFE!
Daspassiert etwas weiter oben im Code (der ist etwas verschachtelt...)Code :1
_root.createClassObject(Label, "Bild", 5);
Dann frage ich in meiner XML Datei ab, wenn Knoten Bild vorhanden [...] und dann lade Bild und skaliere...
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
if(aNode.nodeName == "Bild"){ _root.Bild._x = 30; _root.Bild._y = 245; var img = _root["Bild"].createEmptyMovieClip("img", 1); img.loadMovie("./pics/dummy.jpg"); ladeBild(img); }//end if ######################### }//end function function ladeBild (givenImg){ _root["Bild"].onLoad = function() { if (this.givenImg._width > 10 && this.givenImg._height > 10) { // Hier skalieren _root["Bild"]._width = 940; _root["Bild"]._height = 500; }//end if } //end function }//end ladeBild
Ich hab die Funktion mal etwas ausgelagert in der Hoffnung er benutzt sie, aber Fehlanzeige... Ich habs auch mit "onEnterFrame" statt onLoad probiert, aber dann lande ich in einer Endlosschleife...
Gruss
-
Hi,
funktioniert nicht. Du musst schon mit einer onEnterFrame-Methode auf das Laden warten, wie ich es in meinem vorherigen Posting geschrieben habe.Code :1
_root["Bild"].onLoad = function() {
Ausserdem:hier definierst Du img als lokale Variable - in der Funktion ladeBild ist sie nicht mehr bekannt. Mach es so, wie ich es gepostet habe, und führe das Vorladen (ohne Extra-Funktion) direkt nach dem loadMovie aus.Code :1
var img = _root["Bild"].createEmptyMovieClip("img", 1);
Gruß
.
-
Guten Morgen,
komischerweise habe ich deinen Code nochmal probiert, aber die Bilder lassen sich einfach nicht skalieren, sie werden angezeigt und platziert, aber die width und height ignoriert er einfach. Geht das skalieren nicht über?
Code :1 2 3 4 5 6
if (this.img._width > 10 && this.img._height > 10) { // Hier skalieren _root["Bild"]._width = 940; _root["Bild"]._height = 500; }//end if
Aber das macht er nicht. Und das versteh ich nicht, und ich war mir sicher dass der Code schonmal funktioniert hatte...
Weil entweder er skaliert mir das gar nicht (mit deinem Vorschlag ) und ohne die "if-Abfrage" in irgendwelchen komischen Angaben, so dass es definitiv nicht die Pixel sind die ich haben will?!
GrussGeändert von Orphelina (26.07.05 um 09:42 Uhr)
-
ist this.img bei Dir überhaupt definiert? Ausserdem solltest Du dann auch this.img skalieren und nicht den gesamten Container.if (this.img._width > 10 && this.img._height > 10)
Poste bitte mal Deine Datei, denn hier im Dunkeln rumzustochern bringt nicht viel.
Gruß
.
-
Ok im Anhang die Datei, ich habe alles in das ActionScript gepackt, der Aufruf findet in der fla* statt...
Gruss
-
Hi,
also, das kommt mir alles etwas komisch vor:- Du hast einen Container namens _root["Bild"] - aber das scheint eine Label-Instanz zu sein? Warum instanzierst Du das Bild in ein Label?
- Wenn Du die Namen so fest vergibst, kannst Du nicht mehrere dieser Klasseninstanzen erstellen - die Objekte würden sich ja gegenseitig überschreiben.
- Das Vorladen müsste eigentlich so aussehen:, aber da ich a) nicht weiß, was Du mit _root.Bild.unloadMovie(img) erreichen willst und mir b) einige Zweifel kommen, dass da sonst alles mit rechten Dingen zugeht, wird das wohl auch so nicht funktionieren.PHP-Code:
img.loadMovie("pics/" +imgname);
img.onEnterFrame = function() {
if (this._width > 10 && this._height > 10) {
this._width = 787;
this._height = 482;
}
}
Kannst Du mal eine lauffähige Version (sprich: die .fla mit dem entsprechenden Aufruf der Klasse) posten?
Gruß
.
- Du hast einen Container namens _root["Bild"] - aber das scheint eine Label-Instanz zu sein? Warum instanzierst Du das Bild in ein Label?
-
Hallo,
also zu a) wohin soll ich das Bild denn laden, bisher ging das mit dem Label ganz gut?
Das mit den festen Namen hatte ich nicht bedacht geb ich zu, da ich immer davon ausgegangen bin nur ein Bild auf der Bühne zu haben...
Das unloadMovie hab ich gesetzt dass das Bild auch wieder von der Bühne verschwindet, also wenn ich weiter rumklick quasi die Bühne "geleert" wird und ich neue Elemente auf die Bühne stellen kann... Oder gibt es einen Befehl der alles von der Bühne löscht?
Gruss
-
Ok, aber dann drängt sich mir die Frage auf, wozu Du ein Bild lädst und es dann sofort wieder entlädst? Immerhin befindet sich "img" in _root.Bild - und wird natürlich mitgelöscht.
Wie gesagt: Meine Verwirrung mag daher rühren, dass ich mir kein Bild von der Situation machen kann, sprich: das Ding nicht in "Aktion" sehen kann.
Gruß
.
Ähnliche Themen
-
Problem mit Actionscript
Von click im Forum Flash PlattformAntworten: 3Letzter Beitrag: 02.03.07, 10:00 -
Array ohne Grössenangabe
Von cibal_gina im Forum C/C++Antworten: 3Letzter Beitrag: 01.06.05, 18:17 -
Button Problem mit ActionScript
Von shroom im Forum Flash PlattformAntworten: 2Letzter Beitrag: 20.01.05, 20:28 -
Actionscript Problem
Von TheEM im Forum Flash PlattformAntworten: 11Letzter Beitrag: 25.07.03, 12:06 -
grössenangabe bei Bildern
Von suid im Forum HTML & XHTMLAntworten: 4Letzter Beitrag: 16.04.02, 16:09





Zitieren
Login





