Laad de gegevens en de gegevens en commando 's bevel

,,,,,,,,,,, deelt, delen, delen,,,,,, het netwerk van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, laad de gegevens heel gebruikelijk is (zoals in de werking van SWF 's) als en alleen als de gegevens volledig is geladen, kunnen we lezen of de werking van de inhoud.Meestal moeten we luisteren naar de gebeurtenissen van een volledige, laders, of URLLoader laden van de gegevens, de voltooiing van de verwerking.Meestal zijn we een code te schrijven, laad de gegevens voor een functie en de voorbereiding van de code van de verwerking van een andere functie volledig geladen, maar dit kan worden bereikt door verbetering van het laden,,, de les aan het creëren van een belasting van de uitbreiding, in mijn vorige handleiding bevel kader 1, denken. Deel 2 om de verpakking en vervoer naar een plek.De uitbreiding van deze belasting kunnen worden gecombineerd met de scène in de orde van het kader, met inbegrip van deel 2 van de twee denken.In deze handleiding van de vele soorten die opgenomen zijn in het gebruik van een les, dus stel ik voor dat je in de les te lezen voordat de gegevens heeft ingevoerd, deze richtsnoeren voor het beheer van het concept van een centrale opslag van gegevens "Bank" genoemd.Kun je de enige sleutel string gegevens geregistreerd op beheer van gegevens, en het verlenen van de desbetreffende belangrijke touwtjes, en de toegang tot de gegevens.Het houdt je uit de cijfers over de omvang van de problemen en de variabele object, trouwens, je zou met het oog op de voltooiing van deze voorbeelden moeten GreenSock tussen de animatie platform.,, waarom belasting van gegevens en het bevel?Generaal, we de hele gebeurtenis luisteraars in functie van de gegevens.Dit breekt de code 2 blokken, logisch verband.Door te kijken naar de code, je ideeën breek je afleiden van de belasting naar de gebeurtenissen van volledige functie, laten we een onschuldige in de SWF 's voor het laden van de logica van de SWF' s, laden,, URL en, oncomplete () is een functie van de,, dispatchevent () noemt, zal een methode. De integriteit van de gebeurtenissen, die, dispatchevent (). De methode is door de interne procedures.Nou, eigenlijk, is het een door elk object, genoemd, behoort, laders, voorwerpen, maar om het kort te houden, ik wil alleen maar zeggen dat, dispatchevent (). De methode is door de belasting van de procedure, de volgende, in oncomplete (,), functie en wordt genoemd, domorestuff (), na voltooiing van de voltooiing van het laden, als de naam van de functie, geen dingen meer, een hoog niveau van logica - is heel rechtlijnig: bel, laders. (), de methode, de oncomplete () (), tweede, derde, domorestuff.Maar als je van de kaart in kennis van elke functie, zijn ingebed in een functie voor het lichaam, waardoor een "..." code.In mijn ogen, als een functie van de logica van de code is lineair, in verband met een lineaire manier voor te bereiden, in plaats van het nest.Anders noemen, als het nest te hoog is, de code kan worden verward, dit is als de commando 's in het spel zijn.De volgende grafiek, zien we dat de code is het gebruik van commando is lineair, in alle commando 's zijn door een serie commando hangen samen.Hoewel de programma 's "fraude", setproperties () (), addchildloader,,,,, domorestuff (); van hun beroep is lineair.,, beheer van gegevens, oké, voordat we beginnen, een verdere belasting, in de eerste plaats, DataManager kijken, klasse.De manager laat je een belangrijke reeks gegevens in verband met een object, en je kunt je code in toegang tot deze gegevens zijn verwijzing naar het doel.En de manager, je hoeft je geen zorgen te maken om de gegevens en het toepassingsgebied van de variabelen.Alles wat je hoeft te doen is de registratie van een blok van gegevens en de manager van een belangrijke reeks, de code is zeer eenvoudig, zoals hieronder aangegeven: de invoer van flash.utils.dictionary, data (van de klassen DataManager; ///////bescherming van gegevens tussen {woordenboek. Particuliere statische var _data: woordenboek woordenboek () = nieuwe gegevens; ///////terug in verband met de belangrijke functie van de string van statische gegevens (de belangrijkste: de reeks): * {terug _data sleutelwoorden: ///////register gegevens;} en de belangrijkste reeks openbare registratie van de gegevens (sleutel statische Functie: reeks gegevens: * * * * * * *): [] = {_data ongeldige gegevens;} ///////annulering sleutelhanger van de statische functie unregisterdata (sleutel: string): _data [uit] ongeldig {geschrapt;}Alle belangrijke touwtjes ///////de functie van de statische cleardata ():{ongeldig (var: de sleutel tot het touw in de _data) {geschrapt _data sleutelwoorden;}}}}, dus als we willen dat een van de belangrijkste string "registratie van de gegevens" en een voorwerp... Dat een elfen - kunnen we de code als volgt:, de VAR - Sprite? = nieuwe Sprite (); DataManager. Registratie van gegevens ("het", SPRITE); dat later, overal in de code, kunnen we gebruik maken van de volgende codes om de toevoeging van verwijzingen naar de lijst van elf.Zo simpel is het geen vragen meer, en het behoud van het voorwerp van variabele omvang, de VAR - Sprite? = DataManager.De gegevens ("het") als een Sprite, tank. Addchild (?); de methode, onschuldig, naïef, laten we nu eens kijken hoe de belasting voor het laden van externe beeld zien.- de code is in een functie en de voltooiing van de code in een andere.We zullen drie beelden laden, en ze toegevoegd aan het laden van de fase na de voltooiing.Bovendien zullen we de gebeurtenissen om toezicht te houden op de belasting door te luisteren naar de vooruitgang, de voortgang van de stappen 1: het creëren van een flash document, open de zaklamp, het creëren van een nieuwe flash documentatie, stap 2: het creëren van een vooruitgang, op het podium trek een vooruitgang, dit is voor De vooruitgang van de lading.De vooruitgang in een symbool, geef het een naam: "progressbar_mc".De vooruitgang in de voortgang van het symbool, de omschakeling naar een ander symbool, en geef hem een voorbeeld van een "innerbar_mc".,, salaristrap 3: voorbereiding van de drie beeld voor beeld, met hun dossier in een map, genaamd "foto 's 1. JPG", "imago. JPG" en "Foto' s. JPG".Er zijn drie beeld te zien. Van stap 4: het creëren van een,, type document, het creëren van een nieuwe voor de bestanden in hun dossier.De code is zeer eenvoudig, alle details in een commentaar op de verklaring.Ten eerste, de drie lader wordt gecreëerd en de belasting te beginnen.In elk geval een vooruitgang, aanpassing van de vooruitgang.Als de lading is voltooid, de voortgangsbalk verdwijnt, een beeld van de invoer, in verpakkingen com.greensock.tweenmax. {; de invoer van flash.display.displayobject; de invoer van flash.display.loader; de invoer van flash.display.movieclip; de invoer van flash.events.event; de invoer van flash.events.progressevent; de invoer van flash.net.urlrequest; uitbreiding van de cursussen naiveloading movieclip {particuliere var loader1: Lader; speciale var loader2: Lader; particuliere var loader3: Lader; de functie van naiveloading () {///////progressbar_mc.innerbar_mc.scalex nul vooruitgang, de inkrimping van het creëren van de lader = 0; ///////loader1 = nieuwe lader (); loader2 = nieuwe lader (); loader3 = nieuwe lader (toevoeging van de programma 's); ///////Loader1 ESS publiek. Contentloaderinfo. AddEventListener (progressevent.progress, vooruitgang); loader2. Contentloaderinfo. AddEventListener (progressevent.progress, vooruitgang); loader3. Contentloaderinfo. AddEventListener (progressevent.progress, vooruitgang); ///////loader1 toegevoegd. Publiek. Contentloaderinfo. AddEventListener (event.complete, onComplete methoden); loader2. Contentloaderinfo addEventListener (event.complete, onComplete methode.); loader3. Contentloaderinfo. AddEventListener (event.complete, onComplete methoden); ///////loader1 te laden. Belasting (nieuwe urlrequest ("in de."); loader2. De belasting (nieuwe urlrequest ("imago. JPG"); loader3. De belasting (nieuwe urlrequest (foto 3) particuliere JPG "); de vooruitgang van de functie van vooruitgang (E:Gebeurtenissen): ///////ongeldig (voor de berekening van de totale beetje last van var: de eenheid = 0; bytes bytes = lopende dossiers loader1.contentloaderinfo.bytestotal; het totale aantal bytes = loader2.contentloaderinfo.bytestotal; bytes + = ///////loader3.contentloaderinfo.bytestotal; voor de berekening van de totale wat laden var bytesloaded: eenheid = 0; bytesloaded + = loader1.contentloaderinfo.bytesloaded; bytesloaded + = loader2.contentloaderinfo.bytesloaded; bytesloaded + = loader3.contentloaderinfo.bytesloaded; ///////aanpassing van de vooruitgang van de omvang van progressbar_mc.innerbar_mc.scalex = bytesloaded /bytes;} particuliere var _completecount:int = 0; particuliere functies (E: gebeurtenissen): ongeldig {_completecount + +; als (_completecount < 3) de resultaten van deHet schrappen van het publiek rn; ///////loader1 vooruitgang. Contentloaderinfo. RemoveEventListener (progressevent.progress, vooruitgang); loader2. Contentloaderinfo. RemoveEventListener (progressevent.progress, vooruitgang); loader3. Contentloaderinfo. RemoveEventListener (progressevent.progress, vooruitgang); ///////publiek loader1 geschrapt worden. Contentloaderinfo. RemoveEventListener (event.complete, onComplete methoden); loader2. Contentloaderinfo removeEventListener (event.complete,. Volledige); loader3. Contentloaderinfo. RemoveEventListener (event.complete, onComplete methoden); var in displayobject = loader1.content; var: beeld: displayobject = loader2.content; var. 3:DisplayObject = loader3.content belasting aan te passen; ///////Het image1.x ED &= 30, image1.y = 30; image2.x = 230, image2.y = 30; image3.x = 430, image3.y = 30; //add geladen beelden te addchild (image1); - de lijst van addchild (image2); addchild (image3); //fade uit Progress - TweenMax.to (progressBar_mc, 0,5, {autoAlpha:0, blurFilter:{blurX:20, blurY:20}}) de beelden waren; //fade in TweenMax.from (image1, 0,5, {delay:0.5, alpha:0, blurFilter:{blurX:20, blurY:20}}); TweenMax.from (image2, 0,5, {delay:0.7, alpha:0, blurFilter:{blurX:20, blurY:20}}); TweenMax.from (image3, 0,5, {delay:0.9, alpha:0, blurFilter:{blurX:20, blurY:20}});}}}, stap 5: test van de film, de pers CTRL+ENTER de aan de test.Zie je de voortgangsbalk onmiddellijk verdwijnt, drie foto 's zal vervagen.Dit is omdat deze beelden zijn lokale bestanden, dit betekent dat ze onmiddellijk kunnen laden.De snelheid wordt gesimuleerd gedownload van het internet, in de eerste plaats om een keuze, download > > DSL, als de download van snelheid, en ook geen raam gesloten volgens de CTRL test start de simulatie van Internet downloaden.Deze keer zal je zien dat vooruitgang geleidelijk uit te breiden, voordat het weer weg, oké, het is tijd om het beeld en commando 's, praktische programma' s. Het kader van,, voordat we verder gaan, laten we een aantal praktische procedures te creëren, zal op achter het gebruik van commando 's.Nogmaals, deze opdracht is gebaseerd op het in mijn vorige training (deel 1) voor een beschikking kader, stel ik voor dat je naar de door hen voordat we verder gaan.Als je ooit les, je kunt altijd teruggaan als je je geheugen opfrissen, voor het beheer van de gegevens in het commando, hier zullen we en annulering van de registratie van gegevens als gegevens van het creëren van twee bevelen.Registratie van gegevens over de,, overste data, terwijl het beheer, unregisterdata, om gegevens, commands.data {invoer commando. Beschikking; de invoer van data.datamanager; ///////de overste data naar de gegevens van de uitbreiding van de orde van de registratie van gegevens over de belangrijkste variabelen {: touw; de Variabele gegevens: *; de functie van registratie van de gegevens (sleutelwoorden: de reeks gegevens: * * * * * * *) {this.key = belangrijkste; this.data = gegevens die betrekking hebben op de bescherming van uitvoerende functies;} {DataManager:void (). De geregistreerde gegevens (de belangrijkste gegevens); volledige ();}}} {invoer, pakje commands.data beschikking. Beschikking; de invoer van deze beschikking zal data.datamanager; ///////gegevens uit de gegevens van het unregisterdata beperkte uitbreiding van{var het sleutelwoord: touw en het publiek; de functie van unregisterdata (sleutel: string) {this.key = belangrijke functies uitvoeren;} voor de bescherming van:void () {DataManager. Unregisterdata (vooral); volledige ();}}}, dat loaderload commando, die de verpakking, laders, bijvoorbeeld, (). De methode is.Je kan zorgen voor een vooruitgang, commando 's, in elk geval vooruitgang en, volledig wordt uitgevoerd, de voltooiing van de uitvoering van het laden.Aandacht, volledig (). De methode is de voltooiing van een belasting.Deze code is zeer belangrijk.Als je het niet noemen - methode, het bevel wordt niet beschouwd als een volledige, in het ergste geval je hele toepassing van de inmenging, pakje commands.loading {invoer commando. Beschikking; de invoer van flash.display.loader; de invoer van flash.events.event; de invoer van flash.events.progressevent; de invoer van flash.net.urlrequest; de invoer van flash.system.loadercontext; de cursus loaderload Uitbreiding van openbare belasting: Beschikking {lader. Http: urlrequest; openbare var; de variabelen: loadercontext context; de variabele geboekte vooruitgang: beschikking; de variabele volledig: beschikking; de functie van loaderload (lader: Lader, URL: http: urlrequest, achtergrond: loadercontext = nul vooruitgang: Beschikking = nul, onComplete methoden: commando = nul) (this.loader = = = = = =De lader; this.url = URL 's; this.context = context; this.onprogress = vooruitgang; this.oncomplete = volledig uitvoeren;} voor de bescherming van de functie () {///////:void toevoeging van luisteraars lader. Contentloaderinfo. AddEventListener (progressevent.progress, progresslistener); de lader. Contentloaderinfo. AddEventListener (event.complete, completelistener); de lader. Contentloaderinfo addEventListener (event.complete. En loadingcomplete); ///////begin lader. De belasting (URL) privé - functie, de context); loadingcomplete (E: gebeurtenissen): ///////ongeldig {wegnemen van luisteraars lader. Contentloaderinfo. RemoveEventListener (progressevent.progress, progresslistener); de lader. Contentloaderinfo removeEventListener (gebeurtenis.De volledige, completelistener); de lader. Contentloaderinfo. RemoveEventListener (event.complete, loadingcomplete); volledige ();} privé functie progresslistener (E:progressevent): ///////ongeldig {bevel als vooruitgang (Progress) de vooruitgang van de privatisering. Start (); (e) de functie van completelistener: gebeurtenissen: de tenuitvoerlegging van de beschikking) nietig (///////als de (volledige). Start ();}}}, invokeFunction commando, die een andere functie.Het doel is om je functie te bellen voor een aanvullende reeks parameters, pakje commands.utils {invoer bevel. Om deze commando 's; ///////invokefunction uitbreiding van een functie van de variabele functie: de functie van commando' s {var; de openbare functies: generator; dringt erop invokefunction (functie: Functie: - = nul) {this.func = functie; this.args = parameters die betrekking hebben op de bescherming van uitvoerende functies;} {functie:void (). De toepassing van (nietig, sprake); volledige ();}}}, dat is alles.Zoals de tijd.,, stap 1: een kopie van de documenten voor de flash, een voorbeeld van de nieuwe dossiers in hun dossier en een kopie van de foto 's, samen met het,, 2. Stap drie: het creëren van een document, het creëren van een nieuwe kopie van hun dossier voor de bestanden, genaamd "loadingdatawithcommands".Weet je nog de naam te veranderen in een documentatie van hun dossier voor deze nieuwe categorieën documenten, de code is schoon.Het is het vaststellen van de huidige scenario 's, loadingscene, met de manager.We gebruiken in het kader van de plaats delict heb ik eerder training (deel 2).Je kunt het controleren als je al vergeten hoe het te gebruiken. Flash.display.movieclip. {de invoer; de invoer van scenes.scenemanager; in de loop van de uitbreiding van de functies van loadingdatawithcommands movieclip {loadingdatawithcommands () {VAR scène: scène die = nieuwe scenemanager (); de plaats delict. Scenario 's (nieuwe loadingscene (dit));}}} zijn er twee scenario' s.En loadingscene, belasting van het beeld en de bijwerking van de vooruitgang.- na de voltooiing van de situatie ter plaatse aan de,,,.,,, in het beeld verdwenen. Stap 3: het laden van de scène, verlengd en de scène, het creëren van een nieuwe klasse van de naam, loadingscene,.De belangrijkste eigenschap van containers, met een verwijzing naar de elfen.Dit geeft ons toegang tot het pakket van de vooruitgang, in de plaats delict {; de cursus. Loadingscene uitbreiding var - container: loadingdatawithcommands scenario (particuliere, openbare functies loadingscene (containers: loadingdatawithcommands) {}}} this.container = containers; voor het laden van de scène, nu het bevel te creëren.Dit zal leiden tot drie lader te laden.Dit is door het herschrijven, createintrocommand () doen.De volgende codes naar categorie betreft, is het met de constructeurs, /begin van een commando - openbare functies bestrijkt drie beelden createintrocommand (): Beschikking {VAR loader1: Lader = nieuwe lader (); de VAR - loader2: Lader = nieuwe lader (); de VAR - loader3: Lader = nieuwe lader (); var. Beschikking van parallelcommand (0 = nieuwe: ///////inkrimping van nul schaal nieuwe vooruitgang die eigenschappen (container.progressbar_mc.innerbar_mc {scaleX:0}) ///////- met commando 's in het kader van de nieuwe serialcommand reeks (0 //registratie van de lader beheer van gegevens van drie nieuwe parallelcommand (0, de nieuwe registratie van gegevens ("loader1", loader1 registratie van gegevens ("), de nieuwe loader2", loader2), de registratie van nieuweGegevens ("loader3", loader3)) ///////- richtlijn begin, drie nieuwe parallelle parallelcommand (0, de nieuwe loaderload (loader1, nieuwe urlrequest ("een."), leeg, nieuwe invokefunction (Progress) /vooruitgang commando), nieuwe loaderload (loader2, nieuwe urlrequest ("imago. JPG"), leeg, nieuwe invokefunction (Progress) /vooruitgang loaderload (loader3, nieuwe beschikking), de nieuwe urlrequest ("foto 's, lege JPG"), de nieuwe invokefunction (Progress) /vooruitgang commando)); terug orde;}, rustig aan, herschrijven, onsceneset (). De methode is.Deze methode wordt toegepast, blijkt dat de voltooiing van de opdracht, laden voltooid.Op deze manier, vertellen we de manager naar de plaats van de belangrijkste scène.In de plaats van uitvoering van de beschikking voor aan het einde van de eerste,, openbare functie onsceneset ():void {scène scène (nieuwe scenario 's. Vaststelling van de kaart (containers);}, dan createoutrocommand, herschrijven.Dit commando zal vervagen, aan het einde van de vooruitgang, de vooruitgang. ///////createoutrocommand openbare functies uit dekking (): Beschikking {VAR commando: Beschikking = nieuwe serialcommand (0 //uit nieuwe vooruitgang, tweenmaxto (container.progressbar_mc 0,5 (autoalpha:0, waas: {:20, blurx bewijs: 20}}) ///////geschrapt. Lijst van de vooruitgang van de nieuwe removechild (container. Progressbar_mc); terug orde;}, tot slot, het creëren van een methode, vooruitgang, invokefunction, commando 's, private functie onprogress () {///////:void zoeken naar werk voor Beheer van gegevens loader1: Lader = DataManager (". De gegevens voor de loader1") de lader; var loader2: Lader = datamanager.getdATA ("loader2") voor de lader; var loader3: Lader = DataManager ("loader3"). De gegevens voor de berekening van het totale laders; ///////- belasting var: de eenheid = 0; bytes bytes = lopende dossiers loader1.contentloaderinfo.bytestotal; het totale aantal bytes = loader2.contentloaderinfo.bytestotal; bytes + = loader3.contentloaderinfo.bytestotal; de berekening van de totale bytesloaded: ///////- eenheid wat laden = 0; bytesloaded + = loader1.contentloaderinfo.bytesloaded; bytesloaded + = loader2.contentloaderinfo.bytesloaded; bytesloaded + = loader3.contentloaderinfo.bytesloaded; ///////aanpassing van de vooruitgang van de omvang van container.progressbar_mc.innerbar_mc.scalex = bytesloaded /bytes;}, stap 4: een van de belangrijkste scène nu creëren als de belangrijkste scène, een nieuwe klasse van de uitbreiding, en op het gebied van, CHet meisje in de plaats delict, pakket -; de heer. Een foto uitgebreid. {particuliere var container: loadingdatawithcommands; de openbare functie van de scenario 's kaart (containers: loadingdatawithcommands) {}}} this.container = containers; herschrijven, createintrocommand (). De methode.De methode worden geladen in een lijst, en op een door een.Bovendien niet - geregistreerde gegevens. De belangrijkste gegevens die het beheer van openbare functies, createintrocommand (): ///////- commando (beheer van gegevens loader1 zoeken naar werk: Lader = DataManager ("loader1"). De gegevens voor de lader; var loader2: Lader = DataManager ("loader2"). De gegevens voor de lader; var. Loader3: Lader = DataManager ("loader3"). De gegevens voor de lader; var commando: Beschikking = nieuwe parallelcommand (0 - beeld. //////////////aan te passen aan de nieuwe serialcommand (0 - beeld van De positie van de nieuwe parallelcommand (0, de nieuwe eigenschap (loader1 {x 30, y:30}), de nieuwe instelling de eigenschap (loader2 {x 230, y:30}), nieuwe eigenschap (loader3 {x 430, y:30})) ///////plus belasting.Een 3 - D beeld blijkt dat de lijst van nieuwe parallelcommand (0, de nieuwe addchild (containers, loader1 addchild (), een nieuw vaartuig, loader2 addchild (), een nieuw vaartuig, loader3)) ///////- beelden, in de nieuwe parallelcommand (0, de nieuwe tweenmaxfrom (loader1 0,5 (waas: {blurx bewijs: 20.20,}}), de nieuwe tweenmaxto (loader1 {1), 0,5, autoalpha:), nieuwe tweenmaxfrom (loader2 0,5 {vertraging: 0,2 - 0, waas: {:20, blurx bewijs: 20}}), de nieuwe tweenmaxto (loader2, 0,5 0,2, autoalpha: vertraging: {1}), nieuwe tweenmaxfrom (loader3 0,5 {vertraging: 0,4 - 0, waas: {:20, blurx bewijs: 20}}), de nieuwe tweenmaxto (loader3 0,5 {vertraging: 0,4, autoalpha:1}))) ///////unregsiter beheer van gegevens, de gegevensDe elektronische oorlog parallelcommand (0, de nieuwe unregisterdata ("loader1"), de nieuwe unregisterdata ("loader2"), de nieuwe unregisterdata ("loader3"))); terug orde;}, en stap 5: test van films, oké.We doen.Test - en simulatie van films downloaden.In het bijzijn van voorbeeld, je zal zien is identiek, maar deze keer, het kader van de beschikking en de structuur van een plaats delict.Beschikking van de loaderload, dat kan worden gebruikt voor het laden van de SWF 's, ook.Trouwens, je kan je eigen commando te laden en andere gegevens dan de beelden van SWF 's door het samenbrengen van, URLLoader, tot uw orders, we een beetje meer schrijven, in het tweede voorbeeld dan de eerste.Weet je nog, het kader en de plaats van de doelstelling om het kader voor de uitvoering van de code niet met minder dezelfde resultaten op, maar een systeem voor het beheer van de code, de modulaire aanpak, om je leven makkelijker te maken, als het gaat om de toekomst van de instandhouding en wijziging van het eerste voorbeeld, van de code in een enkele klasse in de toekomst, zodat het moeilijk te handhaven, als het bedrag van de code is zeer groot.Aan de andere kant, en aan de andere kant, zal de logische onafhankelijke code scheiding naar de verschillende scenario 's in de toekomst gemakkelijker te wijzigen.Ondertussen, in combinatie met de commando - kader en in het kader van de uitbreiding, wij hebben voor de toekomst van de ruimte, waar kunnen we nog meer van scenario 's en de invoering van de beschikking, zonder afbreuk te doen aan de onafhankelijke /van de code, die aan het einde van de les.Ik hoop dat je het leuk vindt.Bedankt voor het lezen.,









Previous:
Next Page: