2012-03-27 12 views
0

So habe ich eine gefälschte Preloader Going ... doesnt tatsächlich vorladen, aber nur die "Aktion". Mein Problem wird zu 100% viel zu schnell. Da es nicht wirklich etwas lädt, wie kann ich das verlangsamen, so dass es etwa 3 Sekunden dauert, bis das Laden abgeschlossen ist?Machen Gefälschte Preloader Bewegen Langsamer

der Code unten ist ..

function onEnterFrame(){ 
// Calcules the max width value of the line 
maxWidth = _x*2; 

loaded = (_root.getBytesLoaded()/_root.getBytesTotal())*100; 

// Percentage to output on the percentage textbox 
per = Math.round(loaded) + "%"; 

// Clear this movieclip for drawing 
this.clear(); 

// Draw the white line: 
this.lineStyle(1,backLineColor,100); 
this.moveTo(0,0); 
this.lineTo(Math.abs(Stage.width-maxWidth),0); 

// Draws the black line 
this.lineStyle(1,frontLineColor,100); 
this.moveTo(0,0); 
this.lineTo(Math.abs((Stage.width-maxWidth)*(loaded/100)),0); 
+0

Ich habe in meiner Antwort Code für eine falsche Loader-Leiste hinzugefügt, die Sie testen könnten. Es sollte ziemlich einfach sein, es auszuprobieren. – paul

Antwort

0

Es sieht aus wie es zum Laden des Hauptfilms reagiert tatsächlich, aber (ich vermute) durch die Zeit der Loader-Code tatsächlich läuft der Film hat geladen worden, weshalb es so schnell geht.

Wenn Sie eine Ladezeit vortäuschen möchten, richten Sie einen Timer ein, der alle 200 ms oder so läuft und nach 3 Sekunden stoppt (dadurch wird der Ladezustand auf dem Weg aktualisiert).

EDIT:

Dies sollten Ihnen ein Intervall-Timer einrichten helfen - mit dem Titel finden Sie im Abschnitt „etwas wiederholt in Intervallen zu tun“:

http://flash-creations.com/notes/actionscript_timersanddelays.php

(nicht löschen vergessen der Timer, wenn Sie damit fertig sind!)

Oder, da Sie diesen Code jeden Frame ausführen, können Sie die Frames pro Sekunde des Dokuments als Ihr Zeitintervall verwenden und etwas wie tun:

fps = ... 

if (i * (1/fps) < 3) 
{ 
    loaded = (i * (1/fps))/3 * 100; 
    i++; 
} 

in der Funktion.

EDIT:

Hier ist ein Code, der einen Timer verwendet einen Fortschrittsbalken wachsen. Um es auszuführen, erstellen Sie einfach eine neue Flash-Datei (ActionScript 2.0) und fügen Sie diese in die Aktionen des ersten Frames ein.

//////////////////////////////////////////////////////// 
// set up the properties of the load-bar 
//////////////////////////////////////////////////////// 

// set the width in pixels of the load bar 
// and the X and Y coordinates it should start at 
var loadBarWidth = 100; 
var loadBarX = 200; 
var loadBarY = 100; 


//////////////////////////////////////////////////////// 
// set-up a timer to fake loading of the movie clip 
//////////////////////////////////////////////////////// 

// set how often in milliseconds the timer should run 
var repetitionPeriod = 100; 
// set how long we want the timer to run (in milliseconds) 
var timerLength = 3000; // 3000 milliseconds = 3 seconds 
// varaible to hold how long we've been running 
var runTime = 0; 

// start the timer 
var intervalHandle = setInterval(_root, "intervalCallback", repetitionPeriod); 

// callback function to run every repetition period of the timer 
function intervalCallback() 
{ 
    // add the latest inverval to the total we've run 
    runTime += repetitionPeriod 

    // if we've run the full amount of time 
    // then stop the interval timer 
    if (runTime >= timerLength) 
    { 
     clearInterval(intervalHandle); 
    } 

    // update our load bar 
    // Percentage to output on the percentage textbox 
    //per = Math.round(loaded) + "%"; 

    // draw a line 
    this.lineStyle(1, frontLineColor); 
    this.setRGB(255,255,255); 
    this.moveTo(loadBarX,loadBarY); 
    this.lineTo(loadBarX + runTime/timerLength * loadBarWidth, loadBarY); 
} 
+0

machst du meine Ausarbeitung? ich bin noob. Ich habe diesen Code in Tutorials gefunden, daher bin ich mir nicht sicher, wie ich einen Timer einrichten soll. –

+0

Vielleicht möchten Sie aktualisieren, ich musste die Mathematik ein paar Mal aktualisieren, da ich noch nicht wach bin. – paul

+0

danke für Ihre Hilfe. Ich habe den Link überprüft und ein paar Dinge ausprobiert, die sie gesagt haben und ich kann es einfach nicht verstehen. –

1

ok, also ehrlich gesagt, das ist kein gefälschter Pre-Loader.

Sie gaben Ihnen einen sehr originellen und gut kodierten Pre-Loader auf der Tutorial-Seite.

Der Grund dafür ist, dass der Film bereits geladen ist. Wenn es nicht geladen wurde, können Sie den Preloader sehen, der den geladenen Betrag anzeigt.

Um zu sehen, wie der Pre-Loader aussieht (dh um den Ladevorgang zu simulieren), wenn Sie den Film aus Flash starten (Windows-Tastenkombination Strg + Enter), gehen Sie zu Ansicht> Download-Einstellungen und wählen Sie eine Geschwindigkeit aus simulieren Sie den Download. Klicken Sie dann auf "Download simulieren" (oder drücken Sie einfach erneut Strg + Eingabetaste). Sie werden sehen, wie der Film auf einer Internetverbindung geladen wird.

P.S .: Ich bin überrascht, dass das Tutorial dies nicht erwähnt hatte, denn als ich AS2 lernte und mir ein Preloader-Tutorial anschaute, hatte es fast den gleichen Code, aber auch diese Erklärung.

P.S. 2: Warum nicht AS3 lernen statt der (fast) veralteten AS2?

+0

die site wurde bereits in as2 von vor ein paar jahren gemacht, als ich es gemacht habe. Ich will nicht auf as3 umschalten wollen nur den preloader hinzufügen. Ich weiß wie man download simuliert um zu sehen wie es funktioniert, ich wollte nur das Animation des Preloaders für 3 Sekunden ausgehen, auch wenn die Seite bereits geladen ist, weil die Seite wirklich schnell lädt. Es ist nur ein Feature, das ich sehen will. –

+0

WARUM? Das widerspricht dem Punkt eines Pre-Loader. Wie auch immer, Sie könnten Erstellen Sie eine Animation nach dem Pre-Loader (damit der Preloader beendet wird und diese Animation startet.) Die Animation läuft 3 Sekunden lang und Sie zeigen dann Ihren eigentlichen Inhalt. –