, van de FSM en macht: de idee van oprichting,,,,,,,,,, uitwisseling van aandelen, 17,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen. En die in twee delen te gebruiken voor het creëren van meer uitleg zal de auto staat van de FSM,.We beginnen met de procedure in de staat van de FSM - modellen.Het concept en de innovatie is ons belangrijkste doel, in het eerste deel, blijven we in het tweede deel van de aanvraag en de uitbreiding en, uiteindelijk, de resultaten bekijken, laten we eens kijken naar de resultaten van de laatste, zullen wij ernaar streven: wat is een staat.???????Wikipedia, definitie van de FSM als een wiskundige logica en soms voor het ontwerpen van digitale computer programma.Het is door een beperkt aantal lidstaten, die de overgang tussen de acties, en die vergelijkbaar zijn met die van een diagram, een manier die kan controleren of de logica, bepaalde voorwaarden voldoen aan het interne geheugen, vanwege de beperkte inbreng, lees het symbool; de volgorde, in een tijd van produktie, niet achteruit. En Misschien is dat voor de gebruikers interface vormen, wanneer de uitvoering van de tenuitvoerlegging van het model.Een van de FSM de aanvang van de operatie, die uit een Lid - staat (bekend als de start staat), door omschakeling (hangt af van de inbreng van de verschillende lidstaten), en kan op alle beschikbare - maar slechts een speciale groep staat betekent een succesvolle zakelijke processen, in mijn eigen woorden, van een onderdaan van de FSM een door de ontwikkeling van personeel voor het creëren van een verschillende status van hun gedrag, bij de vaststelling van de inrichting van voorwerpen.Volgens verschillende input, de reactie van de verschillende doelstellingen en /of de staat, een goed voorbeeld is van 1970 dollar vp70z pistolen, waarvan er drie schieten: één, semi - automatisch en veiligheid, derde barstte.Volgens de huidige modellen, heb je dit van een (staat), de resultaten van de verschillende (output) is als je de trekker overhaalt (input), instrumenten: in de idee van een idee (multi - staat tegen je wil creëren, beter gebruik te maken van die staat in tabel te begrijpen, moet je nog Wat voor status en acties stap 1:.,,, het is tijd om te beginnen met een nieuw project.Met FlashDevelop, het creëren van een nieuwe 3 - project.De naam, het carfsm.Klik op "door..." en het redden van de positie die je wil.In de tas in de naad "COM. Activetuts. De FSM".Om ervoor te zorgen dat "het creëren van een project vakje, en klik de keuze van de catalogus voltooien.,, zodra het project is in de FlashDevelop laden, daarna de mening en de selectie van de projecten, de manager."" "dossiers zien?Klik en kiezen voor het onderzoek ", als je deze map, je moet zien dat je de component" van het MAP.Doe ik, met inbegrip van deze handleiding "activa" dossier "" "de source code; ervoor te zorgen dat je niet en gooi het in de" COM "MAP.En, in de source code "COM" dossiers "en slepen bit101 map" COM "" "" in een map.Je kunt downloaden minimalcomps hier als je liever direct van de bron van het boren, eindelijk, in de "COM" folders ("" "") tot de FSM "en op Main.as veranderen.Dit moet nu open FlashDevelop (in de veronderstelling dat je als bij de verlenging van de toepassing van de FD).,, stap 2: de warming - up, we beginnen met een eenvoudige voorbeeld: twee staat minimalcomps vakje, laten we zeggen, we willen een vakje, kan door een wijziging van de etikettering rekening te houden Met de huidige stand van zaken.De volgende tabel is een vakje, van de code, nu.In de volgende categorieën Main.as vervangen door invoer, een bank, en voeg de volgende metagegevens. [SWF 's (breedte van 500, hoogte van 350, framerate = 60, achtergrond kleur = 0xffffff)], en dan naar binnen gaan, (), de methode en de vaststelling van de cursor en hier zei "toegang".En dan nog een methode, simpleexample ().De volgende stap, om ervoor te zorgen dat uw cursor actieve in plaats van voor de oproep, en op de CTRL + shift + 1 "knop.Dat zal een keuze "; voor een privé - functie", en klik op "enter". Nu, nu gewoon kopiëren en plakken in de nieuwe methode voor de vaststelling van de volgende code.Nu, leg je toe in de woorden "het vakje" en de "CTRL + shift + 1" automatische invoering van de categorie nodig.Als je dat doet, klik op 'CTRL + enter "aanvragen, vanaf hier, als je geen fouten, neem je lessen, die ik aan de bron te downloaden, var vakje vakje vakje: = nieuwe (, 240160," valse ", showvalue); checkbox.scalex checkbox.scaley = = = = = = = = = = = = 2. De functie van showvalue (E: gebeurtenissen): ongeldig {vakje (e.target). Label = booleaanse (e.target. Keuze). Tostring ();}, moet je iets dergelijks, zie je dit boven de lijn.Je staat op, en sluit de,,,.Elke keer als je klikt, vakje, het etiket en de veranderingen in staat is een vorm van productie, de echte "auto" van de FSM projecten.Om ervoor te zorgen dat je een operatie in de "schoon" model, het spoor (), het verslag - project. Stap 3: auto 's, en procedures van de FSM, oké, laten we het vergeten, niet vanaf het begin bovenaan de bladzijde van de FSM en auto' s.Wijziging in Main.as, benadrukt (), met simpleexample (), methoden en sloeg uit van hun "terug", naar de Top van de sleutel. De fabrikant van een bank en de toevoeging van de volgende variabelen, particuliere var _past: nummer; particuliere var _present: nummer; particuliere var _tick: nummer van particuliere auto 'S _initiatedtest1 _car:VaR var;; particuliere: Bull. _initiatedtest2 particuliere var: Bull. _initiatedtest3 particuliere var: Bull. _initiatedtest4 particuliere var: Bull. _initiatedtest5 particuliere var: Bull. _initiatedtest6 particuliere var: Bull. _finalactions particuliere var: Bull. _counter particuliere var: de hoeveelheid = 0; _past, variabelen, _present, _tick, en _counter worden gebruikt om regelmatig de uitvoering van.Ik zal snel uit.De variabele voor de _car voor voertuigen van de categorieën een referentie, pakket programma 's auto van de FSM gedrag.De rest is ontstaan en de timing van de voor de actie booleaanse, laten we de uitvoering van het werk in de tijd op.In de fabrikant wordt de volgende code, _present = getTimer () (begin van de fabrikant; - = "+ _present * 0001 * seconden n"); _past = _present; addEventListener (event.enter_frame, vernieuwing, heb je de cursor); in het woord "update", volgens de 'CTRL + shift + 1 "keuze" die gebeurtenis ".Als je de test van toepassing is, zie je een vergelijkbaar met de fabrikant te 2.119 seconden "drukken als je er een snellere computer).(de) de waarde van de gettimer verdeeld, het is hetzelfde, maar ze zeggen dat 1000 vermenigvuldiging sneller, laten we doorgaan, update (). De methode is.Voeg de volgende code van het _present = getTimer (); _tick = (_present - * * * * * * * _past). 001; ////////- 1 /1000 ms _past = _present; _counter + = _tick; ////////voor de timing van de Uitvoering van de tests.Als (_counter > = 2) ///////2 SEC {_counter = 2; - (_counter + "2 seconden");}, nu, als je de test nog eens, vind je het spoor (), de verklaring van elke twee seconden uit.En dan opnieuw in de _counter moet het behoud van de nauwkeurigheid van de timing of overlapping, proberen met een verschillende waarde dan de andere twee seconden, een paar keer, in de auto.Voordat ik verder ga, te schrappen, als (), de verklaring was, update (),.,, stap 4: auto 's, zoals ik al eerder heb gezegd, hebben we in veel landen van het creëren van een auto met een nieuw idee.Laten we zeggen dat we besloten hebben een auto kunnen worden geopend en gesloten kunnen worden, maar ook om de werking en het gas.Dat zou het voor ons vier verschillende staten,,,,,,,,,, out_of_fuel drive_forward, het eerste wat we moeten doen is voor de verschillende acties van de staat en van de staat staat in tabel.Je kan met een potlood en een blanco vel papier Schrijf alle lidstaten snel en doel van de wet heeft de auto nodig.Zie de volgende foto 's, altijd in je. Dat staat in real time ". (").Wanneer de motor in de parking verbruikt veel brandstof, het is makkelijk om je weet dat elk land aan te pakken.Het lijkt zo simpel, want we zijn van mening dat de (menselijke) is het voorwerp van een of ander land, en nu zijn we klaar voor de soort code, binnen Main.as wijziging fabrikant methode, gaan een lijn voor enter_frame, de luisteraar wordt de volgende code, _car = voor nieuwe auto 's; addchild (_car), aangezien; geen auto' s, leg je toe op het woord "auto", volgens de 'CTRL + shift + 1 "," het creëren van een nieuwe klasse "klik" in "obligaties met dezelfde informatie, zoals blijkt uit onderstaande tabel.Klik.,, je moet nu in de FlashDevelop een auto open.,, stap 5: auto 's van de variabelen, wordt de volgende code, in de klasse van de fabrikant een lijn, openbare statische constante one_sixth_seconds: hoeveelheid = 1 /6; ///////6 keer per seconde idle_fuel_consumption: Totaal aantal particuliere = 0055; particuliere. Totaal aantal drive_fuel_consumption: = 011; ///////- nationale particuliere statische totaal engine_off: string = "gesloten"; de particuliere statische constante engine_on: string "; de particuliere statische constante engine_drive_forward: string" bevorderd; particuliere statische constante engine_out_of_fuel: string "brandstoffen"; De particuliere var _currentstate: string engine_off _enginetimer: het aantal particuliere var; = 0; particuliere var _fullcapacity: hoeveelheid = 1; var _fuelsupply particuliere: aantal = _fullcapacity; ///////liter brandstof voor auto 's te installeren, slechts zes keer per seconde.Dit is een klasse constant te zeggen dat one_sixth_seconds,.Bovendien, het verbruik ook afhangt van de auto is bij stationair draaien of rijden.We gebruiken, idle_fuel_consumption, drive_fuel_consumption, voor dit doel, de staat is door vier string constant engine_off zei dat de standaardwaarden.,, _enginetimer, eigendom zou worden gebruikt om de trekker, consumefuel (), per 1 /6 seconden, maar alleen staat, engine_on, of, engine_drive_forward, en, ten slotte, _fuelsupply (wat is dit, consumefuel (), zal de waarde van _fuelcapacity langzaam weg), en een hele pot.,, stap 6: van de methode staat in tabel, de constructie van auto 's leeg.Ga naar het volgende toe te voegen aan de,, update (), zoals hieronder aangegeven, de actualisering van de functie ($tik): ongeldig {- (_currentstate) (zaak engine_off://niet breken; zaak engine_on:_enginetimer + = $tik; ///////aardgas - verklaring als consumptie (_enginetimer > = one_sixth_seconds) ///////6 - interval van {('vm "); ///////kan je zeggen of je houdt van _enginetimer = one_sixth_seconds; ///////0 + overlapping consumefuel (idle_fuel_consumption); ////////30 seconden om de levering van gas); zaak engine_drive_forward: _enginetimer + = $tik; als (_enginetimer > = one_sixth_seconds {-) ('vroomm"); kan je zeggen of je houdt van ///////_engiNetimer = one_sixth_seconds; consumefuel (drive_fuel_consumption); ////////15 seconden om de levering van gas); zaak engine_out_of_fuel://niet breken;}}, we zullen in elk Main.as gewijzigd om deze methode, enter_frame, na de gebeurtenissen van de tijd tussen het frame.Als het om auto 's worden genoemd, en de werking van de huidige staat van de desbetreffende acties, als alleen thuis, staat de overdracht kan slechts plaatsvinden in, consumefuel (), de oprichting van het out_of_fuel,,, _fuelsupply, ren het eruit, let op: dit is je staat in tabel, is altijd de Toegang van het publiek tot actie voor het invoeren van controle.Dit is waar je voor staat of gebruik te maken van het programma staat of wijze van 7: auto stappen.,,, wordt de volgende code na actualisering (), de methode, de openbare taken turnkeyon (): ongeldig {micro - ("proberen te wagen..."); - (_currentstate) (zaak engine_off: micro - ("de auto draaien... Nu de motor rennen!"); _currentstate = engine_on; breuk; zaak engine_on: micro - ("de motor loopt, moet je niet de ontsteking!")- engine_drive_forward; schuld; zaak: ("rijd jij niet de ontsteking!")- engine_out_of_fuel; schuld; zaak: ("geen brandstof voor auto 's zullen niet beginnen, voordat de brandstof is.Terug in de gesloten positie van de sleutel. ");}}, net als de rest, update (;), _currentstate, onderzoeken en passende actie.Dit is de uitleg van haar eigen, stap 8: heeft de auto af, dezelfde ga de auto uit.De toevoeging van openbare functies, turnkeyoff (): ongeldig {micro - ("proberen te stoppen..."); - (_currentstate) (zaak engine_off: micro - ("auto weg is, kan je niet tegen de wijzers van de klok weer de sleutel..."); de schuld; zaak engine_on: micro - ("klik...De motor is het park afgesloten. "); _currentstate = engine_off; breuk; zaak engine_drive_forward: micro - (klik op" nvrm...Ga naar de motor stoppen... Heeft gesloten. "); _currentstate = engine_off; breuk; zaak engine_out_of_fuel: micro - (" Jullie hebben dit als de brandstof opraakt... ");}}, het creëren van een gebroken, is heel eenvoudig.Zolang het kopiëren en plakken voor de een, dan de veranderingen, hier en daar.,, 9: vooruit, altijd terug op je staat in tabel zien wat er in elk land gebeurt, als je de input van Je huidige werk. Toevoeging van de volgende codes, turnkeyoff () voor de bevordering van openbare functies,, (): ongeldig {micro - ("tracht te bevorderen..."); - (_currentstate) (zaak engine_off: micro - (klikken, verandering van vistuig niet doen... De auto 's niet loopt, zal het vistuig park... "); de schuld; zaak engine_on: sporen van vistuig (klikken, veranderen... Ga nu naar de plek..."); _currentstate = engine_drive_forward breuk; zaak engine_drive_forw;De ARD - instellingen: micro - ("al rijden hoeft niet te veranderen..."); de schuld; zaak engine_out_of_fuel: micro - (klikken, verandering van vistuig niet doen... - geen brandstof, vistuig park... ");}}, gebroken, stap 10: brandstof verbruiken, is deze methode is privé, omdat Alleen de auto 's moeten toegang tot het.Het is zes keer per seconde, update (), heeft de code na.,, driveforward (), de methode, de privé - functies (dollar consumefuel verbruik: aantal): ongeldig {als (_fuelsupply = $consumptie) < = 0) {_fuelsupply = 0; micro - ("PHIT PHIT - motoren stoppen. En geen brandstof meer te functioneren, zal vistuig park..."); _currentstate = engine_out_of_fuel;}} Zie je nu de code voor te leggen in de categorieën van variabele deel 11:.,, stappen te tanken, dit is privé, omdat alleen de auto 's moeten toegang hebben tot het openbare functies in benzine (code,): micro - ("om te tanken. {"); als (_fuelsupply = = 1) {micro - ("geen benzine nodig, nu de tank is vol.); rTerug naar de;} - (_currentstate) (zaak engine_off: micro - ("af..."); de schuld; zaak engine_on: micro - ("de sleutel omdraaien tot gesloten positie af..."); _currentstate = engine_off; breuk; zaak engine_drive_forward: micro - ("wijziging van vistuig rijden naar het park, De sleutel tot de gesloten positie, af...."); _currentstate = engine_off; breuk; zaak engine_out_of_fuel: micro - ("de sleutel omdraaien naar een locatie, af..."); _currentstate = engine_off; breken;} var neededsupply: hoeveelheid = _fullcapacity - _fuelsupply; _fuelsupply + = neededsupply; spoor ("gevuld" en "+ _fuelsupply liter(de); ");}, dat voor het eerst kijken of er een volle tank.Als dat het geval is, zal het je vertellen dat er een volledige intrekking van de tank en de methode van auto 's. Als niet aan de andere kant de hele vijver, die door de bekende situaties /- verklaring goed loopt, het spoor (), de laatste verklaring van de code, een berekening van het brandstofverbruik slechts een aanvulling te houden de integriteit van de tank.En een afdruk van een volle tank, de waarde van de maatregelen: gebruik van 12.,, tostring () (), te helpen, verslagen, die een methode moeten herschrijven de auto op zijn beurt erfenis van Sprite EventDispatcher erfenis, het touw van de verklaring luidt als volgt.Beschouwt het als een methode voor voertuigen van de categorieën van de laatste herschrijven, de tostring (): openbare functie string {terugkeer "auto" + + "_currentstate en de hoeveelheid brandstof _fuelsupply.tofixed" + (2) + "liter (s).";}, dus nu, als je belt, sporen van (_car), en niet "wijziging van Main.as, [auto. Object, en je krijgt een dergelijke verklaring," het voertuig 1 liter brandstof (s) ", laten we terug gaan naar het Main.as gewijzigd voor de test.Moeten gaan voor het redden van je werk.,, stap 13: stresstests in de belangrijkste fabrikant, in je toe te voegen, enter_frame, luisteraars.- de volgende code ////////- 0); _car.turnkeyoff (micro - (_car); _car.driveforward (); - (_car); _car.turnkeyon (); - (_car); op dit punt zal de auto geen tijd de uitvoering van alle zes de actie.Enter_frame, activiteiten, is nog niet begonnen, de volgende stap in, update (). De methode is in _tick, toevoegen, _counter, code aangegeven, pasta, _car.update (_tick); ///////1 5 seconden na de test van de werking van _initiatedtest1 valse waarden zijn alleen de auto 's en de //.Als (_counter > = 5 & &._initiatedtest1) {_initiatedtest1 = waar; _car.refuel _car.refuel () () ();;; () _car.driveforward _car.turnkeyoff; _car.turnkeyoff () () (); _car.driveforward;; (_car.turnkeyon _car.driveforward); - (_car); 2) ///////11 seconden na de test (_counter > = & 11 &;._initiatedtest2) {_initiatedtest2 = waar; _car.turnkeyoff _car.turnkeyon () () ();;; _car.driveforward micro - (_car); 3) ///////30 seconden na de test (_counter > = 30 & &._initiatedtest3) {_initiatedtest3 = waar; _car.turnkeyon _car.turnkeyoff () () ();;; _car.turnkeyon _car.driveforward; _car.turnkeyon () () () ();; _car.turnkeyoff _car.turnkeyon; micro - (_car); 4) ///////35 seconden na de test (_counter > = 35 & &._initiatedtest4) {_initiatedtest4 = waar; _car.refuel () (); _car.refuel; - (_car); _car.turnkeyoff () (); _car.driveforward; _car.turnkeyoff () () ();; _car.turnkeyoff _car.turnkeyon; micro - (_car); ///////42 seconden na de test) 5 (_counter > = 42 & &._initiatedtest5) {_initiatedtest5 = waar; _car.driveforward (); - (_car); ///////6) test binnen 45 seconden (_counter > = 45 & &._initiatedtest6) {_initiatedtest6 = waar; _car.turnkeyon _car.turnkeyon () () ();;; _car.driveforward micro - (_car);} ////////- na 60 seconden als (_counter > = 60 & &._finalactions) {_finalactions = waar het spoor ('elapsed; getTimer (+) /1000); _car.turnkeyoff (); - (_car);}, ik weet dat dit een veel van de code, maar dit is niet vanzelfsprekend.De toepassing en controle van de produktie van je, als je fout, om ervoor te zorgen dat je de code van dit hoofdstuk in mijn training, proberen te veranderen, _fuelcapacity, auto 's en gemengde op sommige of alle van de methoden voor het testen van de werking van het hoofdstuk en het weer.Zie je de code is een solide, dit programma van de FSM is effectief.Dit is het!Hebben we al gedaan, wacht, wacht.Dat is goed, waarom gaan we niet de capaciteit verhogen, de bevordering van achterstand en de turbo?Terwijl in het, kunnen we net zo goed de animatie en stem toe te voegen.Nu, stel je voor, als je je auto doet alles doen, auto 's op de Top van de pagina, zullen er meer zijn.We kijken misschien 2000 - ten minste de code.En lachen.Ik zou zeggen, en, natuurlijk, ik kan hacken.Maar de code te kwetsbaar, en makkelijk te breken.Dus het kan het gebruik van verschillende technieken, is een goed idee, als van de FSM een eenvoudige handeling betreft, door middel van de verschillende maatregelen, dat het gebruik van deze technologie.Maar als je er een ingewikkeld onderwerp, kan in de toekomst de toevoeging van een nieuwe functie.Zelfs voor het toevoegen van een staat, en dit is de staat model, stap 14:., invoering van de staat -, zeg Hallo tegen de "Big Brother" programma staat machine.Het gebruik van dit ontwerp zal je staat gemakkelijk te onderhouden en te veranderen, maar het beste deel van andere landen kan nu nog niet de vernietiging van de risico 's van de toepassing van de code, zullen we nogmaals over onze vertrouwde staat in tabel.Zie stap 4.Staat het model bestaat uit drie delen.In de eerste plaats is de staat interface, die zal worden opgenomen in de staat die in de tabel van alle actie zien.Trouwens, de staat interface kan ook een methode voor de uitwisseling van alle staten.De tweede, die overeenkomt met de staat in tabel in elke staat.Ten derde, de staat. - dit is meestal je programma voor de omschakeling van de voorwerpen (voertuigen van categorie) staat de machine.In de auto, zal het publiek toegang te verschaffen tot kwalificatie van de staat en om alle categorieën van externe controle.Deze auto zal worden toevertrouwd aan de huidige activiteiten van de actie staat, stap 15: het begin van de omschakeling, klik op "", en de keuze van de project manager. "In de "" ", om te boren, totdat je de map" staat voor ".Klik en kiezen voor het toevoegen van nieuwe interface >... "Daarna", in de ", dat de naam" staat interface ".- "ik" en om te beginnen met de overeenkomst, zodra de FlashDevelop open, wordt de volgende code, de functie turnkeyoff () () nietig te verklaren; turnkeyon: functie: functie: () nietig te verklaren; bevordering van benzine () nietig te verklaren; de functie van: ongeldig is; de functie van vernieuwing ($aankruisen): functie: tostring () nietig te verklaren; het touw, dit staat interface; dat de status van klasse.Tot slot een functie, tostring (), geen auto 's, al staat de les te gebruiken voor meer informatie over de interface, kijk naar 3 101: invoering van de interface.Laten we beginnen met de toevoeging van klasse 16 staat.,, stap in engineoff: klasse, volgens dezelfde procedure als je staat interface - integendeel, de keuze van de toevoeging van een nieuwe soort, de naam is ""., engineoff ".Voor de interface - klik "toevoegen" en "staat interface", het type interface tussen klasse in staat moeten vinden met een map.Het vakje "interface" die moet worden gekozen voor de uitvoering.Klik om nieuwe soorten, uit de helft voltooid.Het moeten laten zien wat het volgende is vergelijkbaar. Com.activetuts.fsm {klas, engineoff tot openbare functies engineoff () {{} /* * * * * * * * * * * * * * Istate /openbare functie interface com.activetuts.fsm.istate turnkeyoff () {}:void openbare functie turnkeyon () {}:void openbare functie:void driveforward () {}) openbare functie refuel (:void {} actualisering van de functie ($tik): openbare functie is tostring () {} {}}}: touw van deze staat, niet moet worden verlengd omdat alle activa van een Sprite media (tweede deel), worden toegevoegd, en door de controle van de auto 's.De Verenigde Staten zullen worden geconcretiseerd door auto 's zal zelf als referentie.Een dubbele structuur zal worden gebruikt om auto 's en staat de communicatie tussen 17:.,, en onze engineoff, wijziging van de methode van de fabrikant onder code komt overeen met een particuliere var _car: auto' s; de functie van engineoff ($auto 's: de auto) {_car = $), Met inbegrip van de auto; ik de verbetering van de _car variabelen van de fabrikant.Nu kunnen we de controle van voertuigen van de categorieën in dit land, dat we naar de interface voor de uitvoering van de in turnkeyoff (,), de methode.Controleer je staat in tabel, kijk wat er hier gebeurd is.Ten tweede, in vergelijking met de programma 's, turnkeyoff (), de auto' s in de methode van klasse.Onthoud, we zijn nog steeds in de programma 's voor voertuigen van de categorieën van de FSM.Als je de wedstrijd gezien.De actie, engine_off kopiëren, staat leeg.En turnkeyoff (), dient rekening te worden gehouden met de volgende methode die je zag, de openbare functie turnkeyoff (): ongeldig {_car.print ("auto weg is, kan je niet tegen de wijzers van de klok weer de sleutel...");}, het spoor (), verklaring heeft vervangen, print (), zullen we nog naar de auto 's na en nu in, turnkeyon (), de methode en de toevoeging van de code in, _car.print ("overdracht van de motor op de auto... Nu rennen!"); _car.changestate (_car.getengineonstate ()); controleer je staat in tabel en programma 's, turnkeyon (), de methode, engine_off, staat zijn hetzelfde.En changestate (). De methode is door de staat zal terug naar de auto 's halen veranderd moet worden, en de rest van de methode op dezelfde wijze behandelen.- de volgende code, en het gebruik van het openbare functies te bevorderen in plaats van lege methode (): _car.print ongeldig {(klikken, veranderen van vistuig niet doen... De auto 's niet loopt, zal het vistuig park... "); de openbare functie) (): ongeldig als brandstof (_car.hasfulltank () = = vals) {_car.print (" ga "+ van toetreding (_car.refillwithfuel ()), de (2) +" liter brandstof (s). "); de functie van de bijwerking (}), tik): de ondoeltreffendheid van de openbare functie tostring () {} {: string" opgesloten ";}, driveforward (). Niet dezelfde procedures, driveforward (), de methode, de _currentstate, geregeld, engine_off,,, refuel (), vraag de auto niet volledig naar de tanks.Als het niet om auto 's te tanken.Zie je deze twee methoden werken als we veranderen van auto 's, na het werk, update () is nog steeds leeg, omdat de auto het niet meer. Tostring (,,), als een auto, met een tostring (), dat is engineoff, bij het creëren van een andere Staat rusten, laten we De wijziging van de auto en ze in hun staat van 18:.,, stap de auto staat. Van belang is: het creëren van een herhaling van de procedure in de volgende categorieën voertuigen.Een kopie is genoeg maar moet bewaren voor later. In plaats van door het veranderen van post, maar wordt de volgende code kopiëren en plakken, met het vervangen van de inhoud van uw auto 's. Com.activetuts.fsm (invoer flash.display.sprite; de invoer van voertuigen van de categorieën flash.events.event; de uitbreiding Sprite (///////de toestand van het voertuig /motor gesloten. /motor /DRIVE staat /gas staat de statische constante one_sixth_seconds: hoeveelheid = 1 /6; ///////6 keer per seconde van de statische constante idle_fuel_consumption: hoeveelheid = 0055; de statische constante drive_fuel_consumption: hoeveelheid = 011; particuliere var _engineoffstate: staat Interface; locomotief _engineonstate: particuliere var _ Istate;Enginedriveforwardstate:Istate; particuliere var _engineoutoffuelstate:Istate; particuliere var _fuelcapacity: hoeveelheid = 1; particuliere var _fuelsupply: hoeveelheid = _fuelcapacity; ///////van een volle tank (liter): het aantal particuliere var _enginetimer = 0; particuliere var _currentstate: Istate; de openbare functie van auto 's () {}); de functie ervan (particuliere ondernemers (): invaliditeit ();} {initializestates privé functie initializestates (): nieuwe engineoff ongeldig {_engineoffstate = (de); _engineonstate = nieuwe motor (de); _enginedriveforwardstate = nieuwe enginedriveforward (de); _engineoutoffuelstate = nieuwe engineoutoffuel (de); _currentstate = _engineoffstate; ///////-}Actualisering van de functie ($tik): ongeldig {_currentstate.update ($tik); ////////- functie) openbare functie turnkeyon (E: gebeurtenissen = nul): invaliditeit ();} {_currentstate.turnkeyon openbare functie turnkeyoff (E: gebeurtenissen = nul): invaliditeit (); de bevordering van openbare functies} {_currentstate.turnkeyoff (E: gebeurtenissen = nul): invaliditeit (); de openbare functie} {_currentstate.driveforward brandstof (E: gebeurtenissen = nul): invaliditeit ();} {_currentstate.refuel openbare functie consumefuel (dollar consumptie: aantal): ongeldig {als (_fuelsupply = $consumptie) < = 0) {_fuelsupply drukken (= 0; de motor is gestopt, geen brandstof meer te rennen... ") tot wijziging van de status van (_eng;Ineoutoffuelstate);}} openbare functie refillwithfuel () {VAR neededsupply: steunbedrag: = _fuelcapacity - _fuelsupply; _fuelsupply + = neededsupply; openbare functie terug neededsupply;} hasfulltank (): booleaanse {VAR fulltank booleaanse = = = = = = = = _fuelsupply: _fuelcapacity?Echt, als fulltank) drukkerij (geen benzine nodig, nu, waar is de tank... "); de openbare functie terug fulltank;} getengineoffstate (): ///////Istate {} terug _engineoffstate; duidelijk, weet je dat je op een openbare functie voor getengineonstate (): terug naar de _engineonstate Istate {} openbare functies; getengineoutoffuelstate (): terug naar _engineoutoffuelstate Istate {}); openbare functie terug getenginedriveforwardstate (_enginedriveforwardstate Istate {} openbare functie veranderen; de staat (staat: de staat (interfaces): ongeldig _currentstate = $staat;} openbare functie terug enginetimer (): _enginetimer nummer (;) //verborgen, als je de toegang tot de variabelen de openbare functie- enginetimer (de waarde van de dollar zijn: het aantal): ongeldig {_enginetimer = de waarde van openbare functies;} print ($tekst.): - nietigverklaring {($tekst);} herschrijven tostring (): openbare functie string {terugkeer "auto" is op dit moment _currentstate + en + hoeveelheid brandstof "+ _fuelsupply + liter (s).";}}}, laten we eens kijken naar de wijziging van de definitie van de variabelen,.Je vindt, vier lidstaten hebben wijzigingen van type Istate is niet langer een statische constante, de volgende, fabrikant nu heet, en roept initializestate () ().Alle soorten concretisering door de staat van deze methode, en dan is het gemakkelijke deel, niet meer over de verklaring.Deze auto is gewoon de vertegenwoordiger van het huidige optreden van de staat.Kijk, turnkeyoff () (), naar beneden, refuel,,, consumefuel (), wordt de motor en de toegang van het publiek tot de twee methoden enginedriveforward, dan we in engineoff, refuel (), het gebruik van de methode, hasfulltank () () refillwithfuel,,,., de volgende is voor Alle vier lidstaten hebben duidelijk de ambitieuze mensen.Het lijkt misschien vreemd, maar het werk is van de overeenkomst, op de verpakking, changestate ().,, het is niet dat het verandert _currentstate, nogmaals, in overeenstemming met het doel gerichte technologieën, strenge regels, _enginetimer, eigendom van toegang tot en met deze twee methoden gewijzigd om de enginetimer () (de) enginetimer:,,,.,, de afdruk (), maar voor nu is het door de reeks parameters, het spoor (), een verklaring.En dan, tostring (), 19, stappen.,: het creëren van drie andere lidstaten, vereenvoudiging van de andere drie categorieën te creëren, in de auto, voor de - ().Heb je "motor" van de cursor op de term ", volgens de CTRL + shift + 1" een hint.De keuze van de te creëren en nieuwe klas "klik" in "met informatie waaruit blijkt dat de in het volgende beeld, en klik.,, vergelijkbaar met die van 16 tot engineoff als je stappen.Alleen deze keer, gebruiken we een kortere weg.En, zie je een referentie aan de fabrikant in de concretisering van de auto 's is het voorwerp.Vergeet niet dat de toevoeging van "$" van de symbolen van de parameters voor je auto.
De macht van de FSM: het concept en de oprichting van
Previous:Een snelle Hint: singleton.
Next Page:De oprichting van een en as3isolib