Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-08-2005, 18:43   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Höhe eines externen Filmes bestimmen

Hallo zusammen. Habe folgenden Code:
ActionScript:
  1. var xPos = 0;
  2. var yPos = 0;
  3.  
  4. for (i=1; i<4; i++) {
  5.  
  6.  
  7. createEmptyMovieClip(["container_mc"+i],i);
  8.  
  9. _root["container_mc"+i].loadMovie(["m" + i + ".swf"]);
  10. groesse = this["container_mc" +i]._height;
  11. _root["container_mc"+i]._x = xPos;
  12. _root["container_mc"+i]._y = yPos;
  13. yPos += _root["container_mc" +i]._height;
  14. trace(groesse);

Dieser soll dazu dienen 3 externe swfs (m1.swf, m2.swf und m3.swf) in container, und zwar direkt untereinander zu laden. Das funktioniert auch ganz gut, nur liegen sie alle immer übereinander.
Wenn ich mir groesse tracen lasse kommt da immer 0 raus. Es muß also irgendwas mit meinem ["container_mc" + i]._height falsch sein. Hoffe jemand kann mir da helfen. Danke.
Randy ist offline   Mit Zitat antworten
Alt 24-08-2005, 18:57   #2 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
hallo,
["container_mc" + i]._height scheint doch völlig i.O. zu sein, und auch null ist doch eine "korrekte" ausgabe, wenn auch nicht zufriedenstellend. bedeutet aber auf jeden fall, dass deine swf's nicht geladen werden, sonst hätten alle drei container eine andere höhe als null. versuch mal, sie manuell zu laden, ohne "["m" + i + ".swf"]" und ohne schleife, einfach mal einen laden und sehen ob das geht.

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 24-08-2005, 18:59   #3 (permalink)
AAI
 
Benutzerbild von AAI
 
Registriert seit: May 2004
Beiträge: 327
nehme an, dass bei dem trace
die Movies noch nicht geladen
sind - sowas dauert n Moment.
AAI ist offline   Mit Zitat antworten
Alt 24-08-2005, 19:03   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Doch die Movies werden schon geladen. Das ist nicht das Problem. Nur übereinander. Ich denke wirklich dass das Trace zu schnell abgearbeitet wird. Muss mal schauen ob ich da irgendeine Problem Lösung finde.

Danke schon mal für die Antworten.
Randy ist offline   Mit Zitat antworten
Alt 24-08-2005, 19:20   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Habs jetzt mal so versucht:
ActionScript:
  1. function three(){
  2.  
  3. var xPos = 0;
  4. var yPos = 0;
  5. var prozent = 0;
  6.  
  7. for (i=1; i<4; i++) {
  8. createEmptyMovieClip(["container_mc"+i],i);
  9. this["container_mc"+i].loadMovie(["m" + i + ".swf"]);
  10. this.onEnterFrame = function() {
  11.     if (prozent == 100) {
  12.             groesse = this["container_mc" +i]._height;
  13.             _root["container_mc"+i]._x = xPos;
  14.             _root["container_mc"+i]._y = yPos;
  15.             yPos += this["container_mc" +i]._height;
  16.     trace(groesse);
  17.     }
  18.    
  19. var bl = this["container_mc"+i].getBytesLoaded() || 0;
  20. var bt = this["container_mc"+1].getBytesTotal() || 1;
  21.         prozent = Math.round(bl * 100 / bt);
  22. }
  23. }
  24. };
  25.  three();

Jetzt wir aber die if schleife direkt übersprungen. Weiß da jemand wie ich das Ding dazu kriege zu warten bis der Film fertig in den Container geladen ist ?
Randy ist offline   Mit Zitat antworten
Alt 24-08-2005, 19:25   #6 (permalink)
AAI
 
Benutzerbild von AAI
 
Registriert seit: May 2004
Beiträge: 327
Erstelle Button mit Name 'bu'.
folgendes Script in Hauptzeitleiste.

ActionScript:
  1. bu.onPress = function () {
  2.     for (i=1; i<4; i++) {
  3.         groesse = _root["container_mc" +i]._height;
  4.         trace("Höhe von swf"+i+": "+groesse)
  5.         }
  6.     }

Sollte was Vernünftiges anzeigen.

// ------------------------------------------------

Um den Prozess zu automatisieren,
eignet sich 'setInterval' ganz gut.

edit:

Prinzip:
1.
Start Ladefunktion

2.
Funktion im Interval starten, die schaut,
ob alles geladen. wenn alles geladen,
Interval löschen,(Daten anzeigen).

Geändert von AAI (24-08-2005 um 19:46 Uhr)
AAI ist offline   Mit Zitat antworten
Alt 24-08-2005, 19:36   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Das ganze ist ja schön und gut. Der Trace Befehl ist aber nur zum Test da. Was ich eigentlich erreichen will ist dass ich 3 swfs in 3 verschiedene Container lege und zwar direkt untereinander. Die swf haben immer unterschiedliche Größen, deshalb will ich ja die Größe des Films auslesen und an den _y wert dranhängen. Wenn ich es jetzt mit setIntervall mache, dann muß ich immer das Intervall abwarten bis sich die Container ausrichten. Gibts denn wirklich keinen Befehl der abwartet bis der Fil geladen ist ?
Randy 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 17:55 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele