Készítsen flash játékok

Míg akkor mindig arra törekszünk, hogy a végső fájl mérete minimális, akkor biztosan görgők, rakodók, amely több, mint egy pár másodpercig, amikor egy modem. Ha a játék száz kilobájt méretű, néhány felhasználó azt több percig is eltarthat.
Az ilyen nagy görgők fejlesztők hajlamosak létrehozni loading képernyők Flash vagy Shockwave. Jellemzően letöltés képernyő az első keret vagy vörösesbarna görgő, tehát ez az első adat, amely áthalad a felhasználó modem. Ezután megjelenik a képernyőn a „Loading játék.” (Download Game), hogy a felhasználók tudják, mi folyik itt.
A letöltés közben videón, hogy még semmilyen információt a felhasználó számára. Az ActionScript nyelvet, akkor megmutatja, mi része a film már be van töltve, vagy mit rész betöltéséhez.

Létrehozása folyamatjelző

Ábra. 17.3 ábra egy első keret Loader1.fla hengerrel. Ez a kép úgy tűnik, hogy a felhasználó után néhány kilobyte videó lesz feltöltve. Ezután egy sor közepén helyezkedik el a képernyő, a felhasználó látni fogja, hogy a letöltési folyamatot.

Ábra 17.3 A zenekar, amely tükrözi a letöltés előrehaladásának és a szövegmezőbe, tájékoztatja a felhasználót arról, hogy a film letöltések


A kód meglehetősen egyszerű. A getBytesTotal () függvény, hogy meghatározza, hogy milyen méretű klip. Ha az első a funkció getBytes Összesen (), hogy az előtag _root, akkor megtudja, a kötet az egész filmet. Annak meghatározására, hogy hány kilobájt már be van töltve, akkor használja getBytesLoaded () függvényt.
A Loaderl.fla görgő a munkaterület egy példánya egy klip, amely egy egyszerű téglalap. Ez az úgynevezett "Progress Bar Fill" (töltés folyamatban van bar). Ezt a példányt hoztak létre annak érdekében, hogy a központ a klip található a bal felső sarokban a téglalap. Ugyanígy jött létre a tartalék üzemanyag jelző a játék „Lunokhod” (lásd a fickó. 16). Mivel a videó közepén található, a bal felső sarokban a téglalap, _xscale ingatlan lehet rendelni bármilyen 0-tól 100-szélessége a klip fog változni, hogy van, akkor töltse ki a területen a jogot a központ.
Másolásához a klip, csatolni egy kis szkript, amely segítségével a getBytesLoaded () a fő idővonal, megtudja, hogy hány bájt már letöltött, és ennek megfelelően módosíthatja a forma egy téglalap. Amikor az egész videót letölteni, az idővonal fog mozogni a keret „teljes” (ábra. 17,4). Egy üzenet jelenik meg, ebben a keretben, hogy a letöltés befejeződött. Ahhoz, hogy indítsa el a játékot, a felhasználónak meg kell kattintson a gombra ebben a keretben. Ez a gomb-nagyon hasznos videoelemben, mint egy hosszú letöltése, a felhasználó nem tudja nézni a monitort, és akkor nem akarja, hogy hagyja ki a kezdete az animáció.

Ábra 17.4 B frame „teljes” roller megvárja, amíg a játékos rákattint a gombra, és csak ezután az animáció folytatódik

onClipEvent (terhelés) // Határozza meg a fájl méretét.
totalFileSize = _root.getBytesTotal ();
// elrejtése a letöltési sávszélesség.
this._xscale = 0;
>
onClipEvent (enterFrame) // Megtudjuk, hogy hány bájt már betöltött.
bytesLoaded = _root.getBytesLoaded ();
// átalakítja ezt az értéket a értéke 0-tól 1.
amountLoaded = bytesLoaded / totalFileSize;
// átalakítja a kapott értéket egy értéket 0 és 100.
percentLoaded = int (100 * amountLoaded);
// Adjuk meg a skálán a töltési sáv.
this._xscale = percentLoaded;
// Állítsa be a szövegmezőbe a fő idővonalon.
_root.loadingMessage = percentLoaded + "%";
// Ellenőrizze, hogy minden már be van töltve,
ha (amountLoaded> = 1,0) _root.gotoAndStopt "teljes");
>>

Komplex loading képernyők

Ábra. 17.3 azt mutatja, hogy a kijelzett érték 63% a szövegmezőbe. Ahelyett, hogy egy ilyen mérési módszer, akkor lehet mondani a felhasználónak, hogy hány bájt már feltöltött és mi a mérete a teljes filmet. Ehhez módosítsa az értéket loadingmessage. írja a következőket:

_root.loadingmessage = int (bytesLoaded / 1000) + "kb /" + int (totalFileSize / 1000) + "kb";

Ekkor ahelyett, 63% akkor egy 90 Kb / 143 Kb, hogy én személy szerint tetszik.
Performing egyszerű matematikai számítások, akkor lehet mondani a felhasználó milyen gyorsan betöltése. Ehhez létrehozunk egy változót, amely tárolja a bájtok számát letöltött és időt kell letölteni őket. Most akkor meg a sebességet a letöltés elosztjuk az első érték a második. Ez lehetővé teszi, hogy mennyi ideig fog tartani az egész film letöltés.
A következő kód mutatja be Loader2.fla videót. Ez hasonló az előző kódrészletet, de itt is megjelenik További információk: letöltési sebesség és a hátralévő idő.

onClipEvent (terhelés) // Az eredeti információt.
totalFileSize = _root.getBytesTotal ();
StartTime = getTimer O;
startBytes = _root.getBytesLoadedf);
// elrejteni a letöltési sávszélesség,
ezt. _xscale = 0;>
onClipEvent (enterFrame) // Megtudjuk, hogy hány bájt már betöltött.
bytesLoaded = _root.getBytesLoaded ();
// átalakítja ezt az értéket a értéke 0-tól 1.
amountLoaded = bytesLoaded / totalFileSize;
// átalakítja a kapott értéket egy értéket 0 és 100.
percentLoaded = int (100 * amountLoaded);
// Adjuk meg a skálán a töltési sáv.
this._xscale = percentLoaded;
// Adjuk meg a letöltési sebesség.
timeSoFar = getTimerO - StartTime;
sebesség = bytesLoaded / timeSoFar;
// Azt megtudja, mennyi idő van még hátra, amíg a végén a letöltés.
bytesLeft = totalFileSize - bytesLoaded; timeleft = (bytesLeft / sebesség) / 1000;
// „átalakítja a kapott értéket
// az érték egy számjegyet a tizedesvessző után.
sebesség = int (10 * sebesség) / 10;
// Állítsa be a szövegmezőbe.
_root.bytesMessage = int (bytesLoaded / 1000) + "kb /" + int (totalFileSize / 1000) + "kb";
_root.speedMessage = fordulatszám + "K / sec";
_root.timeMessage = int (timeleft) + "másodperc fennmaradó";

Ahogy kerekítve timeleft értéke egy egész szám, akkor az utolsó másodpercben feltöltések a megfelelő ablak jelenik meg nulla. Ha nem tetszik ez a helyzet, akkor egészítik ki az értéke egy vagy több tizedesjegy.

// Ellenőrizze, hogy minden már betöltött.
ha (amountLoaded> = 1,0) _root.gotoAndStop ( "teljes");
>>

Más típusú loading képernyők

Csak vett terhelési képernyők - szabvány. sok más lehetőség mellett őket. A legegyszerűbb: csak megjelenik egy statikus váz a „Loading, kérem várjon.” (Töltés, kérem várjon.). Amikor a letöltés befejeződött, akkor a videó egyszerűen továbbítja a következő képre.
Ez az opció lehet bonyolult, és tegye minden ismétlődő animáció a keretben.
Még kifinomultabb megvalósítási módja: minden egyes képkocka jelenik meg a különböző terhelési szakaszba. Például összegyűlnek egy bizonyos kép: minél közelebb a letöltés véget ér, annál teljesebb lesz kép.
Talán, hogy ezeket a rakodási képernyők getBytesTotal () függvény és a getBytesLoaded () nem lesz szükség. Ehelyett, akkor ifFrameLoaded () függvényt, hogy megtudja, hogy az összes betöltött grafika bizonyos kerethez. Ez a funkció akkor hasznos, ha azt szeretné, hogy a felhasználó indított egy része a játék, de nem tudta folytatni, amíg a szükséges személyzet nem lesz kész.
De még mindig jobb, hogy a töltési idők hasznos a játékos. Például I keret egy útmutató, hogy a játékot. Ahelyett, hogy csak ülni és nézni a folyamatjelző sáv tele van, a játékos lehet tanulni hasznos és szükséges információkat hozzá.

Kapcsolódó cikkek