Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-11-2005, 21:52   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Saarbrücken
Beiträge: 280
Eingeladene swf skalieren

Hallo Leute,

ich möchte einen eingeladenen Flashfilm per AS auf Bühnenbreite skallieren.
Leider klappt das nicht mit folgendem Skript:

this.createEmptyMovieClip(contentFilmContainer, 1); this[contentFilmContainer].loadMovie("bg.swf", 2);
this[contentFilmContainer]._x = 0;
this[contentFilmContainer]._y = 0;
this[contentFilmContainer]._width = Stage.width;
this[contentFilmContainer]._height = Stage.height;

wo ist denn da mein Fehler?
Wenn ich _xscale und _yscale benutze skalliert er zwar den Film, aber nicht auf die Bühnenbreite und Höhe. Ich vermute er skalliert dann Auf die Bühnenbreite plus die eingeladenen Filmbreite.
Wie kann ich das denn lösen?

Beste Grüße
Hans meisa ist offline   Mit Zitat antworten
Alt 02-11-2005, 21:55   #2 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
beim laden von inhalten kann nur skalliert werden, wenn der inhalt komplett geladen ist. skaliere den mc zuvor auf die richtige größe (dabei muss er zuvor die gleiche größe haben, wie die zu ladende swf), oder benutze einen => preloader und skaliere, wenn fertig geladen ist.

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 02-11-2005, 22:10   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Saarbrücken
Beiträge: 280
Aber xscale und yscale funktionieren doch?

Du hast recht beim tracen kommt bei mir bei
this[contentFilmContainer]._width --> "0" raus, sogar wenn ich vorab
this[contentFilmContainer]._width = Stage.width; zuweise.

Aber xscale und yscale funktionieren doch?

nur eben falsch, d.h. nicht genau die Stagebreite und Höhe.
Jetzt hab ich raus bekommen, dass der Wert bei
_xscale = 100 also 100% bedeutet, das Hilft mir aber auch nicht weiter, weil ich leider den Movie nicht in relation zur Bühne betrachten kann.
Hans meisa ist offline   Mit Zitat antworten
Alt 02-11-2005, 22:16   #4 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
angenommen du kennst die größer des zu ladenden films (und angenommen, du möchtest sie auch kennen, das ist oft was anderes ), dann kannst du
a) die relation des mc's zur bühnengröße kennen
b) vorab in den mc einen rahmen zeichnen, und zwar in der größe des zu ladenden filmes, und dann auf die größe der bühne skalieren (mit _width, _height)
beides vor dem laden.

sonst musst du tatsächlich einen preloader benutzen, bzw. eine onEnterFrame schleife laufen lassen, die die breite des mc's prüft, und diesen skaliert, sobald die breite nicht mehr 0 ist - das wäre auch schon ein kleiner preloader.

skalieren vor dem ende des loads ist ein problem!

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 17-11-2005, 19:09   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Saarbrücken
Beiträge: 280
Film ist nun geladen

Hallo nochmal,

so ich löse das Ladeproblem über die "Loader Class" von Bokel.
D.h. meine Breite und höhe des Films müsste jetzt da sein.

Leider hab ich jetzt ein weiteres Problem:

PHP-Code:
scaleTypeWidth "fullscreen";
createEmptyMovieClip("contentload_mc",_global.swapDepthsZahl);
++
_global.swapDepthsZahl;
contentFilmContainer contentFilmName+"_container";
this.createEmptyMovieClip(contentFilmContainer_global.swapDepthsZahl);
++
_global.swapDepthsZahl;
contentload_mc.onLoadComplete = function(successloaderObj) {  
    if (
scaleTypeWidth != undefined){                                    
        
trace("this[contentFilmContainer]._width" this[contentFilmContainer]._width);
        
this[contentFilmContainer]._width Stage.width;
        
trace("this[contentFilmContainer]._width" this[contentFilmContainer]._width);
    }
    if (
scaleTypeHeight != undefined){
        
this[contentFilmContainer]._height Stage.height;
    }                                      
}
meinLoader.addListener(contentload_mc);
meinLoader.load(this[contentFilmContainer], _global.swfFolder contentFilm); 
Jetzt möchte ich also meinen eingeladenen Film in der Funktion "onLoadComplete" nun auch skallieren.
Jedoch kann ich den Wert der Var "scaleTypeWidth" nicht aus dieser Funktion aufrufen. Wie kann ich denn diesen Wert an die Funktion übergeben.

Zur Info: Ich lade über eine Schleife mehrere Filme hintereinander und jedesmal überschreibe ich den scaleTypeWidth Wert.

Viele Grüße und Danke schon mal für Eure Hilfe

Geändert von Hans meisa (17-11-2005 um 19:12 Uhr)
Hans meisa ist offline   Mit Zitat antworten
Alt 17-11-2005, 19:23   #6 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
hi, am sichersten ist es, eine globale variable zu benutzen. also _global.scaleTypeWidth;

ansonsten musst du dich mal mit dem thema scope auseinander setzen. dabei geht es um gültigkeitsbereiche von variablen und es ist echt sehr hilfreich, sich mal damit beschäftigt zu haben. variablen werden z.b. nicht einfach leer in den raum deklariert, also einfach scaleTypeWidth = 'irgendwas'; ist nicht sehr brauchbar, wenn man die variable wieder verwerten will.

_globale-variablen sind von überall verfügbar, so auch _root-variablen. ansonsten kommt es immer drauf an.

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 17-11-2005, 19:49   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Saarbrücken
Beiträge: 280
Habs auch schon mit einer globalen Variable versucht

Hallo vielen Dank schon mal für diese schnelle Antwort.

Ich habe es auch schon mit einer globalen Variable versucht.
Jedoch habe ich ein "Überschreibungsproblem" damit.

D.h. Über eine Schleife lade ich hintereinander unterschiedlichste Swf-Dateien die bestimmte Attribute über eine XML bekommen.
Über die XML wird der globalen Var "scaleTypeWidth" immer wieder neu mit spezifischen Informationen über die zu ladende swf befüllt.

Rufe ich jetzt aber die _global.scaleTypeWidth in der Funktion "onLoadComplete" auf. Besitzt sie schon den Inhalt der nächsten zu ladenden swf. MIST!!

Also war meine Idee diese Var irgendwie an die Funktion zu übergeben.
Nur weiß ich leidernicht wie.
Hans meisa 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 10:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele