webForumDet fria alternativet

loader ladda jpg dynamiskt

Flash

7 svar · 463 visningar · startad av Stig

Medlem sedan dec. 2001146 inlägg
Frågan#1

Jag laddar in en bild dynamiskt och vill att när bilden är inladdad gå till nästa scen. Hur löser man detta, hur kan man göra ett loader script till detta.

Min nuvarande kod:

bild.loadMovie("http://www.site.com/bilder/big/"+pict1);
nextScene();

Jag kör MX2004

Medlem sedan maj 2003750 inlägg
#2
bild.loadMovie("http://www.site.com/bilder/big/"+pict1);

this.onEnterFrame = function()
{
    l = bild.getBytesLoaded();
    t = bild.getBytesTotal();

    if(l == t && t > 4)
    {
        delete this.onEnterFrame;
        nextScene();
    }
}

Tänk bara på att om du la in filmklippet "bild" manuellt på scenen medans du redigerar filmen och inte via skript så kommer bilden att försvinna när du byter scen.

/Mirandir

Medlem sedan dec. 2001146 inlägg
#3

Jag har mc bild på nästa scen och bilden finns i detta mc när jag kommer dit så den försvann ej. Om jag vill skapa mc dynamiskt inan jag laddar in hur gör jag då, vill även sätta mc position x y

Medlem sedan dec. 2001146 inlägg
#4

Glömde att fråga hur jag ska göra för att kunna se t = bild.getBytesTotal(); i ett textfält, hur det räknar upp till 100%

Medlem sedan maj 2003750 inlägg
#5

För att skapa ett filmklipp så använder du metoden createEmptyMovieClip (Gäller ActionScript 1.0 & 2.0).

this.createEmptyMovieClip("bild", 1);
bild._x = 100;
bild._y = 100;

Av någon anledning kan man inte sätta x och y position m.m. direkt i funktionsanropet när man använder createEmptyMovieClip vilket man kan när man använder attachMovie för att infoga ett filmklipp från biblioteket eller duplicateMovieClip för att "kopiera" en befintlig filmklippsinstans.

För att visa progress i ett textfällt:

this.onEnterFrame = function()
{
    l = bild.getBytesLoaded();
    t = bild.getBytesTotal();

    [b]progress_txt.text = Math.round(100 * (l / t)) + "%" [/b] 

    if(l == t && t > 4)
    {
        delete this.onEnterFrame;
        nextScene();
    }
}

Där progress_txt är instansnamn och sökväg till det textfällt där antalet laddade procent skall visas.

/Mirandir

Medlem sedan dec. 2001146 inlägg
#6

Tack!

Jag la in textfältet i mitt mc bild och ändrade sökvägen till textfältet men jag kan inte se preloader siffrorna i textfältet?

Jag vill alltså ha min preloader synlig tills bilden kommer, när bilden kommer så tar den väll över och då tänkte jag att textfältet inte skulle synas.

Kan man ha ett dynamiskt textfält på en mask? Har inte det nu men ställer frågan nu direkt.

Min kod:

bild.loadMovie("http://www.site.com/bilder/big/"+pict1);

this.onEnterFrame = function()
{
    l = bild.getBytesLoaded();
    t = bild.getBytesTotal();

    _root.bild.progress_txt.text = Math.round(100 * (l / t)) + "%"
Medlem sedan maj 2003750 inlägg
#7

Du kan inte ha textfältet i filmklippet "bild". När du anropar bild.loadMovie så "rensas" filmklippet på sitt innehåll. Så textfältet försvinner. Så antingen placerar du textfältet i ett filmklipp som du döljer/tar bort när inladdningen är färdig eller så låter du den ligga på tidslinjen och helt enkelt tar bort den med hjälp av keyframes...

Du kan ha ett dynamiskt textfällt i en mask. För att det skall fungera måste du bädda in typsnittet. Så här gör du för att bädda in typsnittet:

Markera textfältet och öppna properties panelen.

1.) Klicka på knappen "Character...".

2.) Välj vilka tecken och/eller teckengrupper du vill bädda in. Svenska å, ä och ö finns med i teckengruppen "Latin I".

3.) Klicka [OK]

Tänk på att flash hanterar olika format (fet, kursiv och/eller fetkursiv) som separata typsnitt så om du skall använda någon av dessa så måste även de bäddas in. Antingen genom att placera textfällt "off-stage" som använder ett av formaten du vill bädda in (Glöm inte att utföra ovanstående steg för att bädda in typsnittet även på dessa textfällt). Eller så anger du att texfältet skall rendera texten som HTML och infogar ett tecken med de formateringar du vill använda.

Notera också att när du bäddar in ett typsnitt så sparas varje tecken i typsnittet som en symbol. Därför växer filstorleken med varje inbäddat tecken. Så det gäller att göra en avvägning mellan tillgängliga tecken och filstorlek.

/Mirandir

Medlem sedan dec. 2001146 inlägg
#8

Tack då förstår jag, lägger textfältet i ett separat mc.

449 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
317 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)