Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-07-2003, 09:32   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
Externes swf und Anzeige des Fortschrittes

Ich möchte ein externes SWF einladen und je nach Bandbreite des Users erst nach einer gewissen Zeit anfangen, dieses abzuspielen.

Da ich gerade erst mit Flash anfange, habe ich im ersten Schritt nur einen einzigen Layer gehabt und dort folgendes reingeschrieben:
loadmovienum("http://irgendeine.url.de/test.swf", 0);

Alles lief wie gwünscht, das Movie wurde sofort abgespielt. So, nun wollte ich schonmal darstellen lassen, wieviel Byte des Filmes eigentlich bereits geladen sind. Also habe ich einen zweiten Layer angelegt, darin ein Textfeld gelegt und mit der Variablen bytesLoaded versehen.

Als Code für diesen Layer habe ich:
while(1)
{
bytesLoaded = _root._level0.getBytesLoaded();
}

genommen. Wir jetzt dieses Flash gestartet, passiert erstmal nichts, bis der Player mitbekommt, dass diese Schleife ziemlich viel rechenzeit wegnimmt. Wenn ich in dem darauffolgenden Dialog dem Abbrechen des Prozesses zustimme, wird mir eine "250" angezeigt, was offensichtlich "bytesLoaded" ist. Der externe Film wurde aber nicht abgespielt.

Ich mache bestimmt ziemlich viel falsch, aber wie kriege ich den Effekt hin, den ich erreichen wollte? Eine Funktion wie "sleep" habe ich nicht gefunden, ich war aber auch davon ausgegangen, dass Flash sozusagen Multitasking beherrscht. Das scheint aber irgendwie nicht so zu sein, oder?

Gruss,
Dirk
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 27-07-2003, 09:43   #2 (permalink)
Herr Brot
 
Benutzerbild von mati
 
Registriert seit: Dec 2002
Beiträge: 1.692
hi, am besten lässt du loadMovieNum weg und machst das ganze mit loadMovie. lege auf _root einen mc namens mcbalken der nichts weiter als ein horizontales rechteck enthält

ActionScript:
  1. //ins 1. Frame
  2. //erstellt einen leeren container auf root
  3. this.createEmptyMovieClip("conti", 1);
  4. //lädt die ext. swf
  5. this.conti.loadMovie("deinemovie.swf");
  6. //abfrage der geladenen bytes
  7. this.onEnterFrame = function() {
  8. var ges = this.conti.getBytesTotal();
  9. var gel = this.conti.getBytesLoaded();
  10. this._parent.balken._xscale = ges/gel*100
  11. if(ges>=4 && gel>=ges) {
  12. //hier muss dann deine anweisung hin, je nachdem wie's weitergeht
  13. trace("Fertig geladen");
  14. delete this.onEnterFrame;
  15. }
  16. stop();


so far, mati
__________________
„Ich war geheilt, all right!“
mati ist offline   Mit Zitat antworten
Alt 27-07-2003, 10:01   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
Danke. Das hat schonmal funktioniert.

Das Movie geht sofort los und ich kann ausserdem sehen, wieweit der Film schon geladen ist. Wenn ich jetzt hingehen und den Film erst dann starten möchte, wenn er z.B. 25% geladen ist, müsste ich den Film direkt nach dem loadMovie anhalten und innerhalb Deiner onEnterFrame-Funktion abfragen, wenn die 25% erreicht sind, um den Film dann zu starten, richtig?

Ich frage, bevor ich es ausprobiert habe, damit ich hier nicht den ganzen Tag mit etwas verbringe, was so nicht gehen kann :-)

Welche Literatur könnt ihr zu AS in Flash MX empfehlen? Die Handbücher, die bei Flash MX dabei sind, sind für einen Anfänger leider nicht sehr spezifisch. Ich weiss immer noch nicht, welche Sachen in Flash praktisch gleichzeitig funktionieren und welche nicht. Warum wird das Movie hier komplett abgespielt, obwohl das Hauptflash ja offensichtlich noch im ersten Frame ist. Gibt es zu den Grundlagen irgendwo eine gute Übersicht?
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 27-07-2003, 10:06   #4 (permalink)
Herr Brot
 
Benutzerbild von mati
 
Registriert seit: Dec 2002
Beiträge: 1.692
ja, das mit den 25 prozent würde so gehen.

wegen den bücher verweise ich dich jetzt einfach mal ins zuständige forum, musst halt ein bisschen gucken was da so steht.

http://www.flashforum.de/forum/forum...?s=&forumid=21

ich selber hab aber keine bücher für flash, kann dir also keinen persönlichen tipp abgeben. anfängerbücher kenne ich keine, aber du wirst bestimmt fündig.


so far, mati
__________________
„Ich war geheilt, all right!“
mati ist offline   Mit Zitat antworten
Alt 27-07-2003, 12:34   #5 (permalink)
:)
 
Benutzerbild von skillz08
 
Registriert seit: Jan 2002
Beiträge: 273
son kleiner tipp leuts:
onenterframe frisst sau viel source.
macht lieber net funktion und ruft die in nem intervall auf.

load_movie=function(){
...
}

setinterval(load_movie,100);

mehr dazu findet ihr in der hilfe (könnt auch den inteval dann wieder löschen) einfach mal bei stichwortsuche interval eingeben
__________________
Scientia potestas est.

@home: .:: mac.blog ::.
@work: .::takomat::.

.:: coming up next ThiNk8lab ::.
skillz08 ist offline   Mit Zitat antworten
Alt 27-07-2003, 12:40   #6 (permalink)
Herr Brot
 
Benutzerbild von mati
 
Registriert seit: Dec 2002
Beiträge: 1.692
ein kleiner tipp skillz...

source? quelle? meinst du performance?
beim preloaden hat der rechner bestimmt nicht viel zu tun, denn schließlich läuft vom rest des films noch gar nix. das onEnterFrame lösche ich im obigen script nachdem der film komplett (oder bis zu 25%) geladen wurde
ActionScript:
  1. delete this.onEnterFrame;
Zitat:
mehr dazu findet ihr in der hilfe (könnt auch den inteval dann wieder löschen) einfach mal bei stichwortsuche interval eingeben
danke, ich weiß wie ich die referenz benutzen kann


mati
__________________
„Ich war geheilt, all right!“
mati 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 09:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele