| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2003 Ort: Berlin
Beiträge: 4
| Universeller externer Preloader
Hallo liebe Flash-Community, bisher habe ich sehr stark von Euch und Eurem Wissen profitiert. Oft, wenn ich ein Problem hatte, bin ich zuerst ins FlashForum gehüpft und habe fast immer gefunden, wonach ich gesucht habe .Deshalb will ich jetzt mal etwas zurück geben. Ich weiß nicht, ob es so etwas schonmal gab. Wenn ja, dann tut mir das Leid. Ich habe die Suchfunktion bemüht und viiiiele Preloader gefunden, aber noch nicht so einen. Also : Mein Ziel war eine kleine .swf-Datei (möglichst < 10 kb) als externen Preloader zu haben, sodass selbst 56k-Modem-Nutzer diese Datei schnell geladen haben. Diese Datei kann dann mithilfe eines FlashVars-Arguments einen externen Film in einer beliebigen Größe, Form und sonstigen Variablen nachladbar ist. Gleich vorweg : Ganz geschafft habe ich es nicht. Die Framerate ist abhängig vom geladenen Film. Dehalb habe ich 3 verschiedene Preloader angefertigt, die alle für eine spezielle Framerate ausgelegt sind (erkennbar am Namen). Wer noch andere Framerates als diese benutzt, der kann gerne die einge Hier noch der Code, der das ganze lädt (nix dolles, nur was Neues im Anpassen der Größe ... der Preloader ist quadratisch, da muss der geladene Film erstmal angepasst werden und positioniert werden, da Flash quadratisch in Rechteckig zentriert) : Code: // necessary FlashVars : movie (the url of the movie/image to load)
// optional FlashVars : moviewidth (width of movie/image), movieheight (height of movie/image)
if (!_root.movie)
_root.movie = "images.swf";
var preloaderwidth = _root._width;
var preloaderheight = _root._height;
var loader:MovieClipLoader = new MovieClipLoader();
var listener = new Object();
listener.onLoadStart = function() {
loading_mc.bar_mc._xscale = 0;
loading_mc.percentage_txt.text = "0 %";
container_mc._visible = false;
}
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
loading_mc.bar_mc._xscale = 100*bytesLoaded / bytesTotal;
loading_mc.percentage_txt.text = int(100*bytesLoaded / bytesTotal)+" %";
}
listener.onLoadInit = function(target_mc:MovieClip) {
loading_mc._visible = false;
container_mc._visible = true;
if (!_root.moviewidth)
_root.moviewidth = target_mc._width;
if (!_root.movieheight)
_root.movieheight = target_mc._height;
var min = Math.min (_root.moviewidth, _root.movieheight);
var max = Math.max (_root.moviewidth, _root.movieheight);
var scale = 100 * preloaderwidth / min;
var position = preloaderwidth * (min - max) / (2*min);
container_mc._xscale = scale;
container_mc._yscale = scale;
if (_root.moviewidth > _root.movieheight) {
container_mc._x = position;
}
else {
container_mc._y = position;
}
}
loader.addListener( listener);
container_mc.movie_mc._lockroot = true;
loader.loadClip (_root.movie, container_mc.movie_mc); .Beispiel zur Einbettung in eine HTML : HTML-Code: <object type="application/x-shockwave-flash" id="test" name="test" data="preloader2_31.swf?movie=test.swf" width="550" height="400"> <param name="movie" value="preloader2_31swf?movie=test.swf" /> <p>Bitte installieren Sie mindestens FlashPlayer 7 oder schalten Block-Scripts wie NoScript ab.</p> </object> HTML-Code: <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="preloader" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="preloader2_31fps.swf?movie=test.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="preloader2_31fps.swf?movie=test.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="preloader" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> data="preloader2_31.swf?movie=test.swf" Wobei test.swf dann ersetzt werden müsste mit dem eigenen Film. Mmh ... Okay, ich hoffe das war jetzt nicht zu viel Text auf einmal ^^. Schönen Tag noch, OlilO |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Oct 2003 Ort: Berlin
Beiträge: 4
| Nachtrag : Größe und Breite
Noch ein Hinweis zur Benutzung : Man kann Breite und Größe speziell angeben (für Animationen sinnvoll). Beispiel : data = "preloader2_31fps.swf?movie=test.swf&moviewidth=500&movieheight=400" |
| | |
| | #3 (permalink) |
| ewig Neuer User Registriert seit: Jun 2003
Beiträge: 423
|
Hallo, ist das mit den Frameraten nötig - ich glaub ich hatte schon mal 15/25fps gemixt ohne Probleme... Eleganter weise könntest Du die ganzen preloaderobjekte dynamisch erstellen. Das mit der Größe und Position verstehe ich nicht, es sollte doch reichen im HTML-code die Maße zu geben. Die kannst Du dann mit Stage.width Stage.height auslesen und den Preloader generieren/ positionieren. Dann könnte man auch noch ne dynamische Farbe mit übergeben. ansonsten ist er schön klein ![]() salü
__________________ http://www.a-d-k.de/ nicht gucken! |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |