ding, het creëren van een YouTube en gadgets puremvc spelen,,,,,,,,,, deelt, delen, delen,,,,,, het netwerk van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, op mijn training en YouTube - speler van API - en ik denk dat het een goed idee zou zijn, om je te vertellen hoe het gebruik van API - en video op YouTube overzicht gdata zoeken.Dus maakte ik een van je nieuwe vaardigheden en YouTube - speler puremvc goed en eenvoudig zoeken en spelen gadget kleine les,,,,,,,, voor we beginnen... En dit is een gemiddelde tot hoge actionscripters training moet je lezen en ik puremvc speler met YouTube - les. Stap 1: waarom, ze gebruiken?En je vraagt je waarschijnlijk af waarom ik kiezen voor het gebruik van puremvc.Nou, ik denk dat het geweldig is.Dit is een geweldig instrument, zodat je een kleine, en uitgebreid tot een groter gebruik van het programma - alle kunnen worden uitgebreid.Dus als we dit programma heeft gemaakt, moet worden opgemerkt dat kan worden gebruikt als een instrument worden opgenomen in verschillende plaatsen, zoals ook een gadget blogs en reclame, stap 2: instellingen, open je favoriete ide, ongeacht de FDT FLEX -, FlashDevelop of rechtstreeks en het creëren van een nieuw project gerealiseerd.We zullen ook het creëren van een swc dus als je al een flash is handig kunnen downloaden van de website van Adobe een spoor), en bovendien zullen we gebruik maken van de tweenlite GreenSock niet vergeten, van de code. Noot: tijdens de eerste paar stappen, bouwen we een skelet puremvc.De eerste stappen in de verklaring kan op mijn puremvc les, stap 3: het creëren van de aanvragen, net als elke toepassing, die we nodig hebben om de toepassing van onze basis.Ik wil het creëren van aanvragen en het bevel op de gevel beginnen met een eenvoudige achtergrond, dus het creëren van een nieuw document, getiteld "de aanvraag" "" ", in: com.flashtuts.applicationfacade pakket {invoer; de invoer van flash.display.gradienttype; de invoer van flash.display.sprite; de invoer van flash.geom.matrix; de invoer van flash.text.font; [SWF 's (breedte ='600, hoogte = f'400 beeldsnelheid = 30, achtergrond kleur =" broeders "#). De uitbreiding van die app Sprite {[(systemfont ='arial, lettertype ='arial, mime type ='application /x-font")] particuliere var arialfont: klasse; de functie van app () {}); (private functie () {var. De matrix = nieuwe matrix: nietigverklaring van:IX (); var BG: Sprite = nieuwe Sprite (); de mat. Creategradientbox (stage.stagewidth, stage.stageheight, math.pi *. 5); glucose (gradienttype.linear. Figuur. Begingradientfill, [0x333333, 0x000000 [1], [1], 0255], mat); BG. Figuur. DrawRect (0, 0, stage.stagewidth, stage.stageheight); BG. Figuur. Endfill (); addchild (BG); het lettertype. Registerfont (arialfont); applicationfacade (). Getinstance. Start (de);}}}, stap 4: het creëren van een raam, nu we alleen het creëren van gevels, niets speciaal, net zoals We in het tegenovergestelde van training, dus het creëren van een nieuw document, getiteld "applicationfacade. Als de" interne "src /COM /flashtuts /", com.flashtuts (invoer van com.flashtu.Ts.controller.startupcommand; de invoer van org.puremvc.as3.interfaces.ifacade; de invoer van org.puremvc.as3.patterns.facade.facade; de invoer van org.puremvc.as3.patterns.observer.notification; de cursus. Applicationfacade uitbreiding uitvoering van ifacade {openbare statische totaal string = "genoemd: applicationfacade; de statische constante start: touw = naam +" start "; de statische functie getinstance ():applicationfacade {terugkeer (bijvoorbeeld?Bijvoorbeeld: de nieuwe applicationfacade ()) als functie van applicationfacade;} voor de bescherming van initializecontroller (:void {-). Initializecontroller (); registercommand (begin, startupcommand); openbare functie begin (fase): betreft: nietigverklaring van sendnotification) {(start); voor de openbare functie sendnotification (notificationname}: touw, het lichaam: object = de nul - string: = nul): niet - ("sturen" {+ notificationname); notifyobservers (nieuwe kennisgeving (notificationname, lichaam, een type);}}}, stap 5: het creëren van een begin van een commando, nu maken we onze commando 's en ervoor te zorgen dat we onze agent en de toepassing van de registratie van de media.Het creëren van een "startupcommand documenten." "de src /COM /flashtuts /de verantwoordelijke voor de verwerking, verpakking com.flashtuts.controller (invoer /" com.flashtuts.model.dataproxy; de invoer van com.flashtuts.view.applicationmediator; de invoer van org.puremvc.as3.interfaces.icommand; de invoer van org.puremvc.as3.interfaces.inotification; de invoer van org.puremvc.as3.patterns.command.simplecommand; uitbreiding van de verwezenlijking van de in de startupcommand simplecommand ICommand {voor openbare functies vervullen (kennisgeving: inotification): (positief registerproxy (nieuwe ongeldig. De dataproxy ()); de façade. Registermediator (nieuwe applicationmediator (mededeling). Getbody (App);}}}, stap 6: het creëren van een agent, we moeten ons nu een mededeling van deY, laten we het creëren van een "dataproxy documenten." "de src /COM /flashtuts /model /" pakket com.flashtuts.model (invoer com.flashtuts.model.vo.datavo; de invoer van org.puremvc.as3.interfaces.iproxy; de invoer van org.puremvc.as3.patterns.proxy.proxy; uitbreiding van de verwezenlijking van de in de dataproxy agent iproxy (publiek statische const naam: string "dataproxy"; de functie van dataproxy Super (() {naam, nieuwe datavo ()); de nieuwe agent openbare functie) Vo ():datavo {terug te keren naar de gegevens voor de datavo;}}}, we gaan terug naar agent achter de training gebruiken we om de belasting van het produceren en opslaan van gegevens uit de gegevens in Het Vo, stap 7: het creëren van Vo, en we moeten een voDe opslag van gegevens vragen, als we uit het overzicht gdata sleutelwoorden als meer dan één keer gebruikers zoeken, maar we zullen het laden van de gegevens van de Vo in plaats van een overzicht gdata API - verzoek.Het creëren van een "datavo documenten." "de src /COM /flashtuts /model /de /" pakket com.flashtuts.model.vo (invoer flash.utils.dictionary; de cursus (publiek datavo var gdataurl: de http://gdata.youtube.com/feeds/api/videos string?De orderby = gepubliceerd & maximale resultaten = 15 V = 2 & & q = "; de resultaten van het onderzoek van de variabelen: het woordenboek woordenboek () = nieuwe;}}, heeft een snel overzicht gdata API - documenten te lezen, zult u zien dat reactieve" gdataurl "blijkt, krijgen we de resultaten van onze vijftien. URL 's open zodat we kunnen om de vraag wat de URL' s achter in het verzoek, salaristrap 8: het creëren van toepassing, in het kader van het laatste deel van ons is van onze programma 's.We zullen creëren, dan hebben we het vanuit het oogpunt van de eerste registratie en tussenpersonen, "progressview" en "progressviewmediator", dus het creëren van een "documenten" in progressviewmediator. Als "src /COM /flashtuts /standpunten /', pak com.flashtuts.view (invoer org.puremvc.as3.interfaces.imediator; de invoer van org.puremvc.as3.interfaces.inotification; de invoer van org.puremvc.as3.patterns.mediator.mediator; de cursus applicationmediator uitbreiding van de verwezenlijking van imediator tussenpersonen (publiek een totaal string =": de naam applicationmediator; de functie van applicationmediator (viewcomponent: object = nul) (ultra (naam, viewcomponent); voor de openbare functie onregister (}):void {}.Rride openbare functie listnotificationinterests (): - {terugkeer van [...]} voor openbare functies; handlenotification (kennisgeving: inotification): naam van de nietigverklaring {var: kennisgeving van touw. Getname (); var: object = kennisgeving. Getbody (); - (naam) {}}}}, stap 9: Het creëren van een onze visie op ontwikkeling, beginnen we met een soortgelijke ontwikkeling in onze visie op het puremvc les, dus tot het dossier "progressview. Als" in "src /COM /flashtuts /standpunten /COM /" pakket com.flashtuts.view.component (invoer flash.display.sprite; de invoer van gs.tweenlite; uitbreiding van de cursussen progressview Sprite (publiek statische const. Naam:G = "progressview"; de statische constante tonen aan dat touw + "show"; de statische constante verborgen: touw + "verborgen"; particuliere var activa: loaderasset; de functie van progressview () {}); (private functie (): ongeldig {activa = nieuwe loaderasset (); de activa (.)); x = activa. 275; de activa. Y = 175; addchild (activa); de openbare functie) ().:void {activa (); tweenlite. Spelen, (, 5). {autoalpha:1); openbare functies aan de:void} {activa () (); tweenlite. Stop, (, 5 {}); autoalpha:0.}}}, zult u zien dat wij het gebruik van een nieuwe klasse van "loaderasset".Dit is in feite een film... Zullen we in een flits ide creëren en het gebruik van onze opvatting van vooruitgang in plaats van dat percentage slechts een, stap 10: het creëren van een brand of flash ide, als je geen flash ide, je kan het downloaden van de website met Adobe) en het creëren van een nieuwe documenten, 3: en voordat we verder gaan, moeten we ervoor zorgen dat de flash weet dat we willen dat de doelstellingen van de Flash Player 9, onze uitvoer naar de westelijke corridor ", dus de keuze van Flash Player 9" van de drop - top en vakje naast "uitvoer" in de titel van de swc SWF 's ",,, en nu zullen we het creëren van een eenvoudige de lader.Ik kies om te gaan een roterende, maar het hangt af van wat je doet.Het creëren van een cirkel, sla een gat in het:,, als je een gat in je cirkel, de toepassing van een van de helling, de overdracht van aan de rechterkant van de cirkel.En een kopie van de halve cirkel, die in de huidige van de top en de toepassing van het.De voltooiing vanNu, wat is het volgende laten draaien, dus laten we het creëren van een supplement:, ik heb 15 ronden lopen, kan je je snel of langzaam, hetzelfde.Nu hoeven we alleen maar dat het een revolutie, dat is het laatste ding dat dit allemaal in een film.Als je dat doet, zet die film... Waarin het voor de uitvoer van goederen, in het raam van de script:,,, kan je zien dat ik noemde het "loaderasset". In dit verband zal de naam de naam gebruik je je mening, dus we zijn terug bij "progressview".Zorg ervoor dat je je activa op dezelfde manier, ben ik in de klas. Com.flashtuts.view.component {invoer: invoer flash.display.sprite; uitbreiding van gs.tweenlite; de cursus progressview Sprite {openbare statische totaal string = "genoemd: progressview; de statische constante tonen aan dat touw +" show "; de statische constante string naam verborgen: +" verborgen "; particuliere var activa: loaderasset; de functie van progressview () {}); (private functie (): ongeldig {activa = nieuwe loaderasset (); de activa. Stop (); de activa. X = 275; de activa. Y = 175; addchild (activa); de openbare functie (}).:{spelen () ongeldig activa;Tweenlite (,,. 5, autoalpha:1} {}); aan de openbare functie () {activa:void. Stop (); tweenlite (,,. 5, autoalpha:0} {} {}); 11: oprichting van het concept van ontwikkeling, stap, leider van de bemiddelaar van de vooruitgang in ons concept van Soortgelijke creëren we een en in de gevallen puremvc training, geen update, we hebben gewoon een spinnewiel in plaats van een percentage van symbolen.Het dossier "in progressviewmediator." "" /COM /flashtuts /advies, com.flashtuts.view (invoer /"pakket com.flashtuts.view.component.progressview; de invoer van org.puremvc.as3.interfaces.imediator; de invoer van org.puremvc.as3.interfaces.inotification; de invoer uit org.puremvc.as3.patterns.mediator.mediator; de cursus progressviewmediator bemiddeling bereikt imediator {openbare statische totaal string =" genoemd: progressviewmediator; particuliere var progressview:progressview; de functie van progressviewmediator (viewcomponent: doel = nul) (ultra (naam, viewcomponent); voor de openbare functie onregister (}): nietigverklaring van progressview = nieuwe progressview ({); PROgressview (); viewcomponent. Verstop je. Addchild (progressview); voor de openbare functie listnotificationinterests (}): - {terug [progressview.show, progressview.hide];} voor openbare functie handlenotification (kennisgeving: inotification): niet - {VAR naam: string kennisgeving. Getname (); var: getbody object = kennisgeving. (De); - (naam) (zaak C - progressview.show:progressview. Show (); de breuk; zaak progressview.hide:progressview. De huid ();}}}}, gebroken, je kan met behulp van een programma van je wil, maar er is een probleem met de overzicht gdata YouTube.Als je een speler aan de telefoon, de inhoud van het verzoek van de meerderheid van de server van de lengte van de lader, zodat de flash - speler weet hoeveel bytes, het laden, zodat we kunnen worden berekend aan de hand van een percentage.Maar dit lijkt niet op YouTube overzicht gdata aan de lengte van de inhoud, als je probeert een percentage, Flash Player vindt zichzelf bytesloaded "nul".Schaamte, stap twaalf: het creëren van een volgende stap naar het oog, alles wat we moeten doen is tot onze zoektocht gezien.Dit zal een zoektocht, de gebruikers in hun onderzoek, en een druk op de knop, ze in de vraag.Bovendien zullen we gebruik maken van een evenement luisteren naar vak, zodat als de gebruiker van de "input" vraag nog steeds rennen.Het creëren van een "documenten" in SearchView. Als "src /COM /flashtuts /standpunten /COM /" pakket com.flashtuts.view.component (invoer flash.display.sprite; de invoer van flash.events.dataevent; de invoer van flash.events.focusevent; de invoer van flash.events.keyboardevent; de invoer van flash.events.mouseevent; de invoer van flash.text.textfield; de invoer van flash.text.textfieldautosize; de invoer van flash.text.textfieldtype; De invoer van flash.text.textformat; de invoer van flash.ui.keyboard; de invoer van openbare SearchView mx.utils.stringutil; uitbreiding van een statische const Sprite {naam: string "SearchView"; de statische constante tonen aan dat touw + "show"; de statische constante verborgen: touw + "verborgen";De statische constante search_run: touw + "searchrun"; de statische constante search_results: touw + "resultaten"; de statische constante search_field_string: een wachtwoord... "; op het gebied van particuliere var zoeken: de tekst; de functie van searchview () {}); (private functie () {var de tekst: formaat Nietigverklaring van textformat (): = nieuwe; var boxbg: Sprite = nieuwe Sprite (); de VAR - boxcopy:TextField = nieuwe textfield (); de VAR - boxbutton: Sprite = nieuwe buttonasset (); textformat.color = 0x000000; textformat.font =". "; textformat.size = 10; boxbg. Figuur. Beginfill (0xffffff); boxbg drawroundrectcomplex. Figuur. (0, 0300,35, 0, 0, 5, 5); boxbg. Figuur. Endfill (); boxbg. X = 150; addchild (boxbg); boxcopy.autosize = textfieldautosize.left; boxcopy.defaulttextformat = tekst. Boxcopy.embedfonts = waar; boxcopy.text = "zoeken:"; boxcopy. X = 10; boxcopy. Y = (boxbg.height /2). - (boxcopy.height /2); boxbg. Addchild (boxcopy); op het gebied van de nieuwe textfield zoeken = (); searchfield.border = waar; searchfield.bordercolor = 0x666666; searchfield.defaulttextformat = tekst. Searchfield.embedfonts = waar; searchfield.multiline = vals; searchfield.text = search_field_string; searchfield.type = textfieldtype.input; searchfield.width = 185;Op het gebied van searchfield.height = 16; zoeken. X = X + boxcopy. Boxcopy.width + 10; op het gebied van onderzoek. Y = (boxbg.height /2) - (searchfield.height /2); op het gebied van onderzoek. AddEventListener (focusevent.focus_in, handlesearchfieldfocusin); op het gebied van onderzoek. AddEventListener (focusevent.focus_out, handlesearchfieldfocusout); op het gebied van onderzoek. AddEventListener (keyboardevent.key_up, handlesearchfieldkeyup); addchild (op het gebied van boxbg zoeken.); boxbutton.buttonmode = waar; boxbutton. X = X + boxcopy. Boxcopy.width + searchfield.width + 20; boxbutton. Y = (boxbg.height /2) - (boxbutton.height /2); boxbutton. AddEventListener (mouseevent.click, searchrun); boxbg addchild (boxbutton);}.Privé functie handlesearchfieldfocusin (E: toetsenbord): ongeldig als (searchfield.text = = = search_field_string) {}) searchfield.text = "; handlesearchfieldfocusout (E - functie: het toetsenbord): ongeldig {als (StringUtil. snoeien (searchfield.text) = = = = = = = = = = = = = {") searchfield.text search_field_string;}} privé functie handlesearchfieldkeyup (E: mobiele): (= = = {als ongeldig kan keyboard.enter) {searchrun ();}} privé functie searchrun (E:* = nul) {var de vraag: een lege string StringUtil. snoeien (searchfield.text); als (vraag!= "en" onderzoek ".= search_field_string) {dispatchevent (nieuwe dataevent (search_run, echt, nep, onderzoek);}}}}, wat is deze code moet de nieuwe actionscripter, maar hier is een snelle kwam: in de eerste plaats de tekst formaat, en het creëren van een achtergrond vak (ik gebruik Sprite. Drawroundrectcomplex dozen ()), dan wordt het etiket voor het creëren van de tekst en de inbreng van activa van een knop zou zoeken, zoals ik al eerder heb gezegd, ik heb nog een gebeurtenis van de luisteraar de tekst en de indiening van de knop.Dit betekent dat de gebruiker kan op invoer of op de knop om indiening van de vraag."Handlesearchfieldkeyup () functionele controles om ervoor te zorgen dat de als enter speelde, indien die er zijn, en dan lopen zoeken.Dit is ook een goede praktijken voor de bruikbaarheid van problemen, omdat de mensen die worden gebruikt voor de sla, in plaats van door een knop in te drukken, stap 13: het creëren van zoeken. De bemiddelaars in het oog van de bemiddelaars in het oog, zoek er niet te veel zijn, omdat het niet luisteren naar Alles, en dat is een geef ze de gevel.Te beginnen, door het creëren van een "searchviewmediator dossier. Als de" interne "src /COM /flashtuts /advies, com.flashtuts.view (invoer /" pakket com.flashtuts.view.component.searchview; de invoer van flash.events.dataevent; de invoer van org.puremvc.as3.interfaces.imediator; de invoer uit org.puremvc.as3.patterns.mediator.mediator; de cursus searchviewmediator bemiddeling bereikt imediator {openbare statische totaal string = "genoemd: searchviewmediator; particuliere var SearchView:SearchView; de openbare dienst kan searchviewmediator (viewcomponent: object = nul) (ultra (naam, viewcomponent);} voor openbare functie onregister ():void {SearchView = nieuwe searchview SearchView ();(searchview.search_run, boodschapper. AddEventListener); viewcomponent. Addchild (SearchView);} privé functie boodschapper (E:dataevent): ongeldig {sendnotification (searchview.search_run vraag: e.data {});}}}, als je kijkt naar de hoek, vind je het sturen van een "dataevent" naar een tussenpersoon.In onze bemiddelaar, wij luisteren, en stuur bericht naar je façade.Deze kennisgeving wordt door een bevel om die interactie met de volmacht, stuur dan een gebeurtenis, onze standpunten zal worden toegezonden aan de buitenkant, dus we moeten nu het creëren van een beschikking, door deze vraag naar onze agent, en het actualiseren van de agent ons de code.Het zal de vraag, opgeslagen in het Vo, terug naar een bemiddelaar, en kijk dan door de., stap 14: gegevens bij de commando 's, we beginnen bij de vernieuwing van het optreden, door middel van een kennisgeving aan de search_run SearchView "." onze data' s.Open "applicationfacade." alleen de toevoeging van een "registercommand" verticale "in initializecontroller ()" functie, pakje com.flashtuts {invoer com.flashtuts.controller.datacommand; de invoer van com.flashtuts.controller.startupcommand; de invoer van com.flashtuts.view.component.searchview; de invoer van org.puremvc.as3.interfaces.ifacade; de invoer van org.puremvc.as3.patterns.facade.facade; de invoer van org.puremvc.as3.patterns.observer.notification; de cursus. Applicationfacade uitbreiding uitvoering van ifacade {openbare statische Totaal string = "naam: de applicationfacade"; de naam van de start van een statische constante: + "start"; de statische functie:applicationfacade getinstance () {Terug naar de (bijvoorbeeld?Bijvoorbeeld: de nieuwe applicationfacade ()) als functie van applicationfacade;} voor de bescherming van initializecontroller (:void {-). Initializecontroller (); registercommand (begin, startupcommand); registercommand (searchview.search_run, datacommand); ///////< hier.De openbare functie begin (fase): betreft: nietigverklaring van sendnotification) {(start);} voor openbare functie sendnotification (notificationname: string, lichaam: object = nul type: string = nul): niet - ("sturen" {+ notificationname); notifyobservers (nieuwe kennisgeving (notificationname, lichaam, een type));}}}, nu moeten we de oprichting van "datacommand." dossier "src /COM /flashtuts /de verantwoordelijke voor de verwerking, verpakking com.flashtuts.controller (invoer /" com.flashtuts.model.dataproxy; de invoer van com.flashtuts.view.component.searchview; de invoer van org.puremvc.as3.interfaces.icommand; de invoer van org.puremvc.as3.interfaces.inotification; de invoer van org.puremvc.as3.patterns.command.simplecommEn dat datacommand uitgebreid; de cursus simplecommand ICommand {voor openbare functies vervullen (kennisgeving: inotification): naam van de nietigverklaring {var: kennisgeving van touw. Getname (); var: object = kennisgeving. Getbody (); - (naam) (zaak C - searchview.search_run: agent. Searchrun (body.query);}} breekt; privé functie krijgt de volmacht ():dataproxy {terugkeer van de gevel. Retrieveproxy (dataproxy.name)}}}, als dataproxy; dit is een heel eenvoudig de verantwoordelijke voor de verwerking, het is aan het luisteren naar een bericht doorgeven aan agent.Nogmaals, we gebruiken de functie van referentie agent worden, en dat betekent dat we niet opnieuw gebruikt. Voorbeelden van de informatieplichtige, stap 15: de voltooiing van agenten, nu zijn wij van mening dat de positieve en de voorzijde van schuim gebeurtenissen geven aan onze gegevens bij de commando 's, we moeten onze agent om het vuile werk te doen, dus we zullen een XML - tenzij je een overzicht gdata, voordat onze aandacht verdient, is dat door de rug van XML - atoom vorm en er zijn veel binnen.Als die in namespaces was een beetje van A Hack, als hij de rest van de taal, maar nu in 3 er zijn twee ways:,,, de goede weg,,,, is dit de manier maar het is een goede, en pijn in de lijn als je moet te verklaren. In de 3 vóór belasting in De attributen namespace de XML - 69, zoals, var rss:Namespace = nieuwe namespace ("http://purl.org/rss/1.0/"); var rdf:Namespace = nieuwe namespace ("http://www.w3.org/1999/02/22-rdf-syntax-ns#"); var dc:Namespace = nieuwe namespace ("http://purl.org/dc/elements/1.1/"); alleen dan kan je, toegang tot de XML's variabelen als Walters, var item:String = items[i].dc:: datum, wil Je wat zien dat je; zet de aangegeven namespace en twee colons (": de in tag's/attribute's) van de aarde.Dit lijkt misschien pijnlijk is, het is, maar kan je meer te weten komen over de livedocs Adobe.,,,, is de methode van op deze manier is het makkelijker (lui, denk ik, maar het mandaat kan vervullen, niet willekeurig of breken.Namespace is een eenvoudige methode (of de eigenschappen van de betrokken tekens) tot een verwijzing naar OpenSearch overzicht gdata URL 's, zoals Google, YouTube en haar eigen model en meer.De eenvoudigste manier om de verklaring is niet een etiket en voor hun /Naam van de subsidiariteit, maar je moet nog een asterisk (dit) zoals:, de VAR - project: een string [I] *:: datum, handig.Dus nu weten we hoe om te gaan met het XML -, laten we naar de voltooiing van het Agentschap.De invoering van "dataproxy op." "" /COM /flashtuts /model /"en de volgende code: het pakket com.flashtuts.model (invoer, com.flashtuts.model.vo.datavo; de invoer van com.flashtuts.view.component.progressview; de invoer van com.flashtuts.view.component.searchview; de invoer van flash.events.event; de invoer van flash.events.progressevent; de invoer van flash.net.urlloader; de invoer van flash.net.urlrequest; de invoer van flash.utils.dictionary; de invoer van org.puremvc.as3.interfaces.iproxy; de invoer van org.puremvc.as3.patterns.proxy.proxy; uitbreiding van de cursussen dataproxy volmacht worden iproxy {openbare statische totaal string =" genoemd: dataproxy; particuliere var querydic: woordenboek woordenboek (= nieuwe openbare functies dataprox);Y () {Super (naam, nieuwe datavo ()); de openbare functie) searchrun (vraag): ongeldig {als (Vo. De resultaten van het onderzoek van de vraag dataReady (]) {} {dataload vraag); of (vraag);}} privé functie dataload (vraag): ongeldig {var eisen: urlrequest = nieuwe urlrequest (vo.gdataurl + vraag); -: URLLoader = nieuwe urlloader (); sendnotification (progressview.show); querydic [] = vraag; de lader. AddEventListener (event.complete, handlesearchcomplete); lader. De belasting (EIS); (e) privé - functie handlesearchcomplete: gebeurtenissen ongeldig {VAR gegevens):: XML - = nieuwe XML (e.target.data vo.qu);Eryresults [] [] = gegevens querydic e.target...:: in dataReady (querydic]; [e.target);} privé functie dataReady (vraag): ongeldig {sendnotification (searchview.search_results {vermeldingen: Vo. De resultaten van het onderzoek []}); sendnotification (progressview.hide); de openbare functie Vo (}):datavo {terug naar de gegevens voor de datavo;}}}, we beginnen met de opbouw van een openbare functie, onze data 's zal leiden tot een "searchrun (").Als je ziet dat het aanvaarden van een parameter, de vraag wat de openbare functie:, searchrun (vraag): ongeldig {als (Vo. De resultaten van het onderzoek van de vraag dataReady (]) {} {dataload vraag); of (vraag);}}, nu de aanvragen sneller.Ik gebruik de beginselen, een vraag hebben die gegevens opgeslagen in het Vo en niet noodzakelijk de vraag opnieuw.Dus het gebruik van klasse 3 woordenboeken, kunnen we kijken naar de resultaten van reeds in het Vo.Als ze niet, we moeten ze, anders stuurt ze naar onze bemiddelaar.We zullen in de dataready (") een verdere daling van punt: een functie, als de vraag nog niet operationeel is, moeten de belasting een XML -:, private functie dataload (vraag): ongeldig {var: urlrequest = nieuwe urlrequest (vo.gdataurl + vraag); -: URLLoader = nieuwe urlloader (); sendnotification (progressview.show querydic); [] = vraag; de lader. AddEventListener (event.complete, handlesearchcomplete); lader. De belasting (EIS); (e) privé - functie handlesearchcomplete: gebeurtenissen): ongeldig {VAR gegevens: XML - = nieuwe XML (e.target.data); Vo. De resultaten van het onderzoek querydic e.target [] [] = gegevens. * * * * * * *:: in dataReady (querydic]; [e.target);}, zal je zien dat we de vraag naar gdat."Opslag in onze Vo URL 's string.Dan verwijzen we het gebruik van agent woordenboek, wanneer de gegevens voor de vraag wat klaar is, kunnen we het opgeslagen in het Vo in de vraag, behoeven niet opnieuw laden.En dan voegen we de gebeurtenissen van luisteraars, en een oproep.Als we de gegevens krijgen, we krijgen het uit in een woordenboek, opgeslagen in het Vo en dan rennen "dataready ()" functie: privé - functie, dataReady (vraag: string): ongeldig {sendnotification (searchview.search_results {vermeldingen: Vo. De resultaten van het onderzoek []}); sendnotification (progressview.hide);}, deze functie maar ze nemen en stuur bericht naar de voorkant.Nu kunnen we laten zien dat we de video, stap 16: het creëren van resultaten, als we eenmaal werkt, is het voor ons van deze vermeldingen en de mazen in de laden van de postzegel is gebleken dat ze zo makkelijk.Laten we het creëren van een "resultsview dossier beginnen. Als de" interne "src /COM /flashtuts /COM /" pakket com.flashtuts.view.component (invoer flash.display.loader; de invoer van flash.display.sprite; de invoer van flash.events.dataevent; de invoer van flash.events.mouseevent; de invoer van flash.net.urlrequest; de invoer van flash.utils.dictionary; uitbreiding van de cursussen resultsview Sprite {openbare statische totaal string = "naam: resultsview"; openbare statische totaal tonen aan dat touw + "show"; de statische constante verborgen: touw + "verborgen"; de statische constante klik: touw + "klik"; particuliere var idsdic: woordenboek woordenboek (= nieuwe particuliere var thumbnailheight: nummer);= 90; particuliere var thumbnailspacing: hoeveelheid = 10; particuliere var thumbnailwidth: hoeveelheid = 100; de functie van buildthumbnails (vermelding: voorwerp): ongeldig {VAR IX: de hoeveelheid = 0; var iy: hoeveelheid = 0; var de postzegel: Sprite = nieuwe Sprite (); var de postzegel: Sprite; als (numchildren > 0) {(VAR I: kwantitatieve = 0; ik < numchildren; I + +) (removechildat (me);} buildthumbnails (post);} {VAR (of elke vermelding: XML - vermeldingen) {postzegel = createthumbnail (in X); de postzegel.= (thumbnailwidth + thumbnailspacing) * 9; duimnagel. Y = (thumbnailheight + thumbnailspacing) * iy; als (9 > 3) {ix = 0; io} {9 + + + + + + + +; anders;} de postzegel. Addchild (me);} duimnagel. X = Y = 25; 70 postzegel.; addchild (postzegel);}} privé functie createthumbnail (input: XML) {var de postzegel: Sprite Sprite = nieuwe Sprite (); var masker? = nieuwe Sprite (); var: urlrequest = nieuwe urlrequest (ingang...:: de postzegel [0]. @ URL 'S. Tostring ()); var lader: Lader = nieuwe lader (); idsdic [...] = postzegel:: - ingang. Tostring ();Het masker van de grafische. Beginfill (0x000000); maskers. Figuur. Drawroundrect (0, 0, thumbnailwidth, thumbnailheight, 5, 5); maskers. Figuur. Endfill (); de postzegel. Addchild (masker); lader. De belasting (EIS); de postzegel. Addchild (lader); loader.mask = thumbnail.buttonmode masker. = waar; thumbnail.mousechildren = vals; de postzegel. AddEventListener (mouseevent.click, handlethumbnailclicked); terug naar me;} privé functie handlethumbnailclicked (E:MouseEvent): nietigverklaring van dispatchevent (nieuwe dataevent {(klikken, echt