SWF nachtäglich in Container laden, kleines Problem

Jan-Frederik Stieler

Monsterator
Moderator
Hallo,
habe gerade für jemanden ein test Fla erstellt und habe nun selbst ein kleines Problem.
Die betreffende Person wollte wissen wie man ein ext. Swf in über einen Button an eine bestimmte Stelle läd, und da habe ich ihr dieses script geschriben:
Code:
onClipEvent(data) {
  _root.createEmptyMovieClip("container1", 1);  //erzeugt einen leeren MC mit dem Instanznamen container1
  this._x= 150;                  //die x Position wird auf 150px gesetzt (von links)
  this._y = 50;                 //die y Position wird auf 50px gesetzt (von oben)
  //ab hier benötigst du nur wenn du den MovieClip skalieren möchtest
  bildBreite=this._width;         //wir speichern die Bildbreite in einer Variablen ab.
  bildHoehe=this._height;         //die Höhe auch.
  prop=bildBreite/bildHoehe;     //Verhältnis Breite zu Höhe
  meineHoehe=300;  			 //wir setzen die bildHöhe gleich 300
  this._width=meineHoehe;      //und weisen sie unserem Bild zu
  this._height=meineHoehe/prop; //die Höhe soll sich proportional ändern.
}

nur funktioniert das nicht das das eingeladene Swf die Höhe als ausgangsgröße nimmt (es wird einfach zu groß), wenn ich nun anstadt der Höhe die Breite nehme funktioniert es.

Kann mir hier vielleicht jemand erklären was für einen Denkfehler ich hier mache.

Viele Grüße
 
Wo befindet sich denn dieses Script? _root kannst Du nicht skalieren und den erstellten Container fasst Du ja mit "this" nicht an.

Wenn Du eine externe Datei nachlädst, musst Du auf das Laden warten, bevor Du den Container skalieren kannst, da die Werte ansonsten überschrieben werden.

Gruß
.
 
Hi,
dieses Script befindet sich auf dem Container in den die ext. Datei geladen wird.
Und ich möchte ja nicht den Container skalieren sondern die datei die dort hinein geladen wird.
Wenn ich als Ausgangsgröße zum skalieren die Breite nehme funktioniert das ganze, nur halt nicht wenn ich stadtdessen die Höhe nehme.

Gruß
 
... dann verstehe ich aber nicht, warum Du einen leeren Clip auf _root erzeugst, wenn die SWF-Datei in diesen Container geladen wird (ich sehe übrigens nirgendwo ein loadMovie).

Ich würds so machen (von aussen, sprich das Script auf der Hauptzeitleiste:
PHP:
function loadAndScale() {
    // der Container muss ein leerer MC sein!
    container.loadMovie("meinswf.swf");
    this.onEnterFrame = function() {
        if (container._width > 1 && container._height > 1) {
            var prop = container._width / container._height;
            container._width = 300;
            container._height = 300 / prop;
            delete this.onEnterFrame;
        }
    }
}

Gruß
.
 
Sorry ahte vergessen zu erwähnen das ja noch ein Button existiert, und auf dem habe ich dann das loadMovie
Code:
on(release){
	mc1.loadMovie("test1.swf");
}

Der Container hatt den Instanznamen mc1.
 
... sobald Du die loadMovie-Aktion auf dem Container ausführst, wird das dortige Script überschrieben. Zudem ist mir immer noch nicht klar, was Du mit _root.createEmptyMovieClip() erreichen willst. ;)

Gruß
.
 
Zurück