Geïllustreerde tutorial over het maken van Flash-games. Creatie van flashgames

Programmering

Ga er niet vanuit dat u heeft leren programmeren door het hoofdstuk Inleiding tot ActionScript en het hoofdstuk ActionScript-elementen voor het maken van games te bestuderen. Er is een verschil tussen het kunnen schrijven van ActionScript-code en het hebben van programmeerervaring.
Programmeren is voor de meeste mensen moeilijk, maar voor mij gemakkelijk. Maar ik heb een wetenschappelijke graad in computertechnologie en ik programmeer al 18 jaar. Zonder soortgelijke ervaring mag u geen snelle resultaten verwachten.
Hier zijn enkele principes die u zullen helpen bij het leren programmeren. Zoals elke vaardigheid kost het programmeren tijd om te leren. U zult merken dat hoe meer u programmeert, hoe gemakkelijker het wordt.

Taakanalyse


Het is belangrijk om te beseffen dat als een taak te groot lijkt om uit te voeren, dit waarschijnlijk ook zo is. Verdeel het in kleinere taken en je zult een oplossing vinden.

Programmeerregels

Terwijl u leert programmeren, zijn er enkele regels die u moet volgen die uw werk gemakkelijker zullen maken. Deze regels worden gevolgd door programmeurs over de hele wereld, die alle programmeertalen gebruiken:

Opmerkingen - U moet er een gewoonte van maken om opmerkingen aan uw code toe te voegen. Zelfs lijnen die op dit moment duidelijk lijken, kunnen onduidelijk worden als je er een maand later naar terugkeert;
namen van variabelen- gebruik variabelenamen die hun doel weerspiegelen. Ze zullen de opmerkingen aanvullen en u helpen de code te begrijpen als u er later naar terugkeert;
functienamen - al het bovenstaande is van toepassing op functienamen.
Ze moeten de acties beschrijven die ze uitvoeren; hoe korter hoe beter
- Flash heeft geen limiet op de lengte van een functie. Als u echter een functie schrijft die 100 regels lang is, zult u deze later moeilijk kunnen bewerken. Het is beter om de functie in taken op te delen en elke taak in een aparte functie te plaatsen;
neem herbruikbare functies op in uw code- Hard coderen betekent dat u specifieke cijfers in uw code opneemt. Laten we zeggen om te beschrijven rechterkant het werkveld in uw code gebruikt de waarde 550, deze wordt hard gecodeerd in het programma.
Als u besluit het werkgebied uit te breiden naar 600 pixels, moet u elk gebruik van de waarde 550 in de code wijzigen. Het is beter om helemaal aan het begin een variabele met de naam screenRightSide in te stellen op 550 en deze variabele gedurende het hele programma te gebruiken; goede organisatie

- een goede programmeur moet ongetwijfeld verschillende elementen van een programma kunnen organiseren. Functies moeten bijvoorbeeld niet in verschillende frames worden geplaatst, maar in één frame van uw video. Probeer bovendien functies te groeperen op basis van de taken die ze uitvoeren.
Alle programmeurs moeten de programma's die ze maken debuggen. Het is onmogelijk om een ​​programma de eerste keer dat u het uitvoert feilloos te laten werken. Een goede specialist moet een programma kunnen debuggen.
Naast het gebruik van de ActionScript-foutopsporing kunt u op verschillende manieren fouten opsporen. Wanneer u het afspelen van een video test, kunnen er foutmeldingen verschijnen in het uitvoervenster. Soms is dit voldoende om te begrijpen waar in de code u problemen ondervindt.
Programma-informatie kan ook in het Output-venster worden geplaatst met behulp van het trace-commando. Het zal u helpen bepaalde momenten van het programma en de waarde van bepaalde variabelen op deze momenten bij te houden.

Als u de debugger wilt gebruiken, raden wij u aan de Flash MX-handleiding te lezen voor meer informatie. De debugger is een eenvoudig hulpmiddel waarmee u variabele waarden kunt weergeven terwijl een Flash-film wordt afgespeeld. Ze kan echter geen wonderen verrichten; De debugger kan u alleen helpen uw eigen project te begrijpen.

Testen
De volgende stap bij het debuggen is uw games door andere mensen laten testen. Testen is een belangrijk aspect, zeker als de game op professioneel niveau door jou wordt ontwikkeld. Als programmeur zul je het werk van je geesteskind en de tekortkomingen ervan niet objectief kunnen beoordelen.
Meestal doorloopt het spel vóór de officiële presentatie aan een breed publiek twee verificatiefasen. In de eerste fase (alfatesten) wordt het spel getest door je collega's of vrienden. Bètatesten worden gedaan door mensen buiten uw bedrijf of netwerk. Tijdens beide fasen zou je meldingen moeten ontvangen over eventuele gevonden problemen en bijgewerkte versies van de game moeten vrijgeven zodra deze zijn opgelost.

Helaas levert het programma vaak onverwachte resultaten op als de code syntactisch correct is. Omdat Flash bijvoorbeeld geen speciale declaratie van variabelen nodig heeft, zal het gemakkelijk de naam van een niet-bestaand object opeten (u kunt de naam gemakkelijk verkeerd invoeren) en eerlijk alle acties uitvoeren die eraan zijn toegewezen

Programmafouten omvatten niet alleen fouten, maar ook ongepaste spelinhoud en ontbrekende functies. Probeer je spel zo goed mogelijk te perfectioneren voordat je het als voltooid verklaart.

Flash - ActionScript 3.0 gebruiken

Platform Adobe Flash is de basis voor het ontwikkelen van rijke interactieve webapplicaties, presentaties en gebruikersinterfaces. Met de Flash-applicatie kunnen ontwikkelaars en ontwerpers afbeeldingen, tekst, audio en video gebruiken.

De laatste jaren het meest populaire browsers proberen kwijt te raken met behulp van flits ten gunste van HTML5-mogelijkheden. Bijvoorbeeld de afgelopen tijd Google-versies Chroom Adobe-plug-in Flash-speler wordt standaard gestopt en op sites die Flash gebruiken, moet u dit handmatig inschakelen. Veel populaire videodiensten, zoals YouTube, hebben ook Flash verlaten ten gunste van HTML5. Toch zijn vooral flashgames nog steeds populair, waarbij de mogelijkheden van HTML5 nog steeds aanzienlijk inferieur zijn.

Flash heeft twee gezichten: degene die je op het scherm ziet, en een zogenaamde complexe scripting-engine ActionScript, die je niet ziet. ActionScript is een scripttaal die in Flash is ingebouwd en stelt u in staat interactieve ervaringen te creëren. Elke video waarin u ergens op moet klikken, slepen of pauzeren, vereist het gebruik van ActionScript, dat Flash vertelt wat te doen. ActionScript vormt de basis voor alle interactiviteit en logica die in Flash zijn ingebouwd.

De release van Flash CS3 introduceerde ActionScript 3.0, een sterk verbeterde scripttaal. Oudere versies van ActionScript waren traag bij het uitvoeren van grote, complexe scripts. ActionScript 3.0 heeft daar verandering in gebracht. Het is bijna 10 keer sneller dan ActionScript 2.0 en heeft veel meer functionaliteit.

ActionScript 3.0 heeft een echte objectgeoriënteerde ontwikkelingsbenadering aangenomen die dit mogelijk maakt Flash-applicaties concurreren met oplossingen waarmee is ontwikkeld met behulp van Microsoft.NET (Silverlight) of Java. ActionScript 3.0 verbetert aanzienlijk wat kan worden bereikt door de werksnelheid te verhogen Flash-spelers Player 9 en 10. Met ActionScript 3.0 en Flash Player 10.1 en hoger kunt u toepassingen maken voor de meeste desktopcomputers, apparaten en systemen. ActionScript 3.0 is momenteel de standaardscripttaal in Flash CS5 en latere versies.

In dit artikel leert u waarom ActionScript 3.0 de programmeertaal is die u wilt gaan gebruiken, wat er is veranderd ten opzichte van eerdere versies van ActionScript, wat hetzelfde is gebleven en hoe u onze toepassingen nog krachtiger kunt maken. Het enige probleem dat u moet oplossen, is kiezen wat u eerst gaat ontwikkelen.

Objectgeoriënteerd programmeren gebruiken in ActionScript

Objecten zijn de sleutel tot begrip objectgeoriënteerd programmeren (OOP). In OOP is een object net zo echt als een gewoon object in onze wereld. Een hond of zelfs een computer zijn bijvoorbeeld objecten die in de echte wereld bestaan. Objecten in de echte wereld lijken in twee opzichten op objecten in de computerwereld: ze hebben een bepaalde toestand en gedrag. De toestand van een hond kan bijvoorbeeld worden beschreven aan de hand van eigenschappen zoals de naam, kleur, ras en of hij honger heeft. Het gedrag van de hond bestaat uit blaffen, aandacht zoeken en kwispelen met zijn staart.

Computerobjecten zijn gemodelleerd naar objecten uit de echte wereld in termen van specifieke toestanden en gedragingen. Klas is een weergave van een object dat informatie opslaat over het gegevenstype, de status en het gedrag ervan. Een klasse kan drie soorten kenmerken bevatten: eigenschappen, methoden en gebeurtenissen. Eigenschappen vertegenwoordigen verschillende gegevens die aan een object zijn gekoppeld. Methoden zijn acties die op een object kunnen worden uitgevoerd. Evenement is een actie van een systeem, applicatie of gebruiker (bijvoorbeeld een muisklik die een actie veroorzaakt die aan een object is gekoppeld).

Nadat u een klas heeft aangemaakt, kunt u klassen maken op basis van de bestaande, die worden aangeroepen subklassen of klasse-extensies. De subklasse erft alle eigenschappen en methoden van de ouderklasse, die op zijn beurt worden aangeroepen superklasse. U kunt bijvoorbeeld een superklasse Parent en een subklasse Children maken. Door overerving kan één klassedefinitie (subklasse) alle kenmerken van een andere klassedefinitie (superklasse) bevatten. U kunt ook aanvullende methoden en eigenschappen van de subklasse maken, en methoden overschrijven die zijn geërfd van de superklasse, die wordt genoemd polymorfisme.

Overerving en subklassen zijn erg handig voor grote projecten waarbij u uw functionaliteit kunt delen en de hoeveelheid code kunt verminderen.

Een object behoudt zijn status met behulp van een of meer variabelen. Variabel is een gegevenselement genoemd door een specifieke identificatie. Alles wat een object begrijpt (zijn toestand) en kan doen (zijn gedrag) wordt uitgedrukt door de variabelen en methoden binnen dat object.

Een object dat een rijdende auto voorstelt, heeft variabelen die de snelheid, richting en kleur ervan weerspiegelen, zoals weergegeven in de onderstaande afbeelding. Deze variabelen staan ​​bekend als instantievariabelen, omdat ze de toestanden van een bepaald object bevatten, en in objectgeoriënteerde terminologie wordt een bepaald object een instantie genoemd. Naast zijn eigen variabelen zal de auto methoden hebben die verantwoordelijk zijn voor het veranderen van de snelheid en het inschakelen van de koplampen. Deze methoden worden instantiemethoden genoemd omdat ze de status van een bepaalde instantie controleren of wijzigen.

Flash instellen voor de AVM 2.0-engine

Flash-speler- een plug-in die in uw webbrowser is geïnstalleerd om SWF-bestanden af ​​te spelen, is de sleutel tot succes bij het maken van snelle applicaties. Om ActionScript-code in films te compileren en vervolgens uit te voeren, gebruikt Flash Player een tool genaamd ActionScript virtuele machine (ActionScript virtuele machine) of AVM. Voor ActionScript 1.0 en 2.0 gebruikt Flash Player AVM 1.0. Flash Player 9 introduceerde de nieuwe AVM versie 2.0, die alleen werkt met ActionScript 3.0 SWF-bestanden. Het is vrij eenvoudig onder de knie te krijgen.

Met behulp van AVM 2.0. u kunt applicaties maken die zich kenmerken door hoge snelheid en de complexiteit van traditioneel desktop-applicaties. Voorbeelden van dergelijke toepassingen zijn Adobe's WorkFlow Lab, een tool waarmee u samengestelde Workflow-applicaties kunt ontwikkelen en die rechtstreeks concurreert met de Visio-tool van Microsoft; Adobe Story, een tool waarmee je scripts kunt maken voor multimedia- en videoproducties, en Kuler, een geavanceerde tool voor kleurbeheer. Het gebruik van deze tools biedt hetzelfde antwoord als traditionele desktopapplicaties.

Door oplossingen te ontwikkelen in ActionScript 3.0 die zich richten op de AVM 2.0-engine, zorgt u ervoor dat u uw Flash-ervaring aanzienlijk optimaliseert.

Flash Player 9 ondersteunt AVM 1.0 voor achterwaartse compatibiliteit met bestaande en verouderde inhoud. Flash Player 7 en 8 ondersteunen alleen AVM 1.0. Er zijn echter enkele compatibiliteitsproblemen waar u rekening mee moet houden. Het SWF-bestand kan ActionScript 1.0 of 2.0 niet combineren met code van versie 3.0, maar de code kan wel worden geladen SWF-bestand met versie 1.0 of 2.0, maar het heeft geen toegang tot bestandsvariabelen en -functies (behalve het kunnen gebruiken opdracht loadMovieNum(). en geef de niveauparameter door). Als u versie 1.0- of 2.0-code hebt en versie 3.0-code wilt gebruiken, moet u alle oude code converteren naar ActionScript 3.0. Als u gedrag wilt gebruiken, moet u uw toevlucht nemen tot ActionScript 2.0, aangezien gedrag niet beschikbaar is voor 3.0.

Virtuele machines en JavaScript

Webbrowsers gebruiken virtuele machines om JavaScript uit te voeren, het neefje van ActionScript. Beide technologieën zijn gebaseerd op internationaal formaat ECMA-262, of ECMAScript, zoals het vaak wordt genoemd. Browsers zoals Google Chrome, Safari, FireFox en Internet Explorer gebruiken virtuele machines JavaScript-scripts (Virtuele JavaScript-machines - JVM) om inhoud af te spelen.

Veel van de bedrijven die browserengines maken, geven ze kleurrijke namen: V8 voor Google Chrome, SquirrelFish voor Safari en SpiderMonkey voor FireFox. Maar de winnaar in originele namen kan natuurlijk aan Microsoft worden gegeven - zijn creatieve inspiratie bleef beperkt tot de naam ervan virtuele machine JS (voor JavaScript).

Uiteraard staat AVM 2.0 van Adobe hier op de tweede plaats. Bestaat de kans dat Adobe AVM 3.0 alsnog een pakkende naam geeft?)

ActionScript 3.0 gebruiken

ActionScript 3.0 heeft aanzienlijke veranderingen ondergaan vergeleken met eerdere versies. Dit betekent niet dat als je met ActionScript 1.0 of 2.0 hebt gewerkt, je het moeilijk zult hebben. Het zal alleen tijd kosten om nieuwe manieren te leren om code te gebruiken.

ActionScript 3.0 begrijpen

ActionScript 3.0 is een robuust programmeermodel (volledig up-to-date met de nieuwste release van de ECMAScript-standaard) dat bekend is bij ontwikkelaars met basiskennis van OOP. Als je al andere programmeertalen hebt gebruikt, zoals Java, C++ of C#, dan moet je weten wat deze term betekent.

Met objectgeoriënteerd programmeren kunt u code opsplitsen in objecten die gemakkelijk opnieuw kunnen worden gebruikt. Met OOP is het eenvoudiger een applicatie te beheren die uit een hele verzameling kleine bestanden bestaat, in plaats van uit één groot bestand.

Laten we eens kijken naar de belangrijkste veranderingen waar u even aan moet wennen:

    ActionScript bevindt zich in klassenbestanden of op de tijdlijn.

    Codeontwerp is echt objectgeoriënteerd.

    U kunt ActionScript niet rechtstreeks aan filmclips of knopinstanties toevoegen.

    Het triggeren van gebeurtenissen heeft veranderingen ondergaan.

    XML wordt op een andere manier behandeld.

Bovendien toegevoegd gebruik van type-informatie tijdens runtime, verbeterd gebruik van eigenschappen en klassen met geïsoleerde selectievakjes, toegevoegd gebruik van een sluitingsmethode voor gebeurtenisafhandeling, inclusief de ECMAScript-standaard voor XML, verbeterde ondersteuning reguliere expressies en er zijn primitieve typen toegevoegd (int is bijvoorbeeld een geheel getaltype).

Werken met ActionScript 3.0

Er zijn twee manieren om met ActionScript te werken. De eerste is om ActionScript aan de tijdlijn toe te voegen. Dit zal bekend zijn bij oude Flash-ontwikkelaars. Het wordt aanbevolen om een ​​laag in deze tijdlijn te hebben die uitsluitend bedoeld is voor het werken met ActionScript. Adobe raadt aan dit als acties te bestempelen. Als u deze laag vergrendelt, voorkomt u dat er per ongeluk filmclips aan worden toegevoegd.

De tweede methode is om ActionScript in te voegen Flash-bestanden met een klassenbestand (Klasse). Klassenbestanden hebben een lange geschiedenis in de ontwikkelingswereld. Met hun hulp kunt u zowel openbare als privélessen specificeren. Trefwoord Privé beperkt het gebruik van een attribuut dat alleen in die klasse is gedefinieerd en niet met andere klassen wordt gedeeld. Dit is handig als u instructies ontwikkelt die in een aparte ruimte, privé, moeten worden uitgevoerd.

Andere belangrijke wijzigingen vindt u hieronder:

    Ontwikkeling van bouwoplossingen met een model DOM-evenementen 3.

    Naamruimten gebruiken in uw projecten.

    Gegevensbeheer.

    Tekstbeheer.

    Tekenen met de Shape-klasse.

    Mogelijkheid om eenvoudig met externe ActionScript-bibliotheken te werken.

Overeenkomsten tussen ActionScript 2.0 en 3.0

Ondanks alle veranderingen in ActionScript 3.0 vergeleken met 2.0 is het belangrijk om te onthouden dat er veel functionaliteit, hetzelfde voor beide versies. U kunt bijvoorbeeld nog steeds de volgende elementen op dezelfde manier gebruiken: variabelen, Math-object, if/else-instructies, switch-instructies, strings, datums, arrays en booleans.

De volgende code werkt in zowel ActionScript 2.0 als 3.0:

Var str1:String = new String("Hallo, "); var str2:String = new String("wereld"); spoor(str1 + str2);

Zoals je kunt zien, algemene structuur De syntaxis is in beide versies van ActionScript hetzelfde. De code eindigt met een accolade, namen van variabelen zijn hoofdlettergevoelig en mogen niet met een getal beginnen, klasseobjecten worden op dezelfde manier gebruikt.

ActionScript uitbreiden met open bibliotheken

De kern van ActionScript 3.0 is dat het eenvoudig kan worden uitgebreid. Om dit te doen, kunt u tientallen grote open-sourcebibliotheken gebruiken die de functionaliteit van Flash uitbreiden. Waardevolle voorbeelden zijn:

    Box2D natuurkunde-engine;

    CoreLib – een verzameling kernhulpprogramma's zoals MD5-hashing, JSON-serialisatie en geavanceerde gegevensparsering;

    Syndicatiebibliotheek – een bibliotheek die het gemakkelijk maakt om te parseren basiskanalen ATOM en RSS;

    Alive PDF is een bibliotheek waarmee u scherminhoud van Flash naar PDF-formaat kunt converteren.

Als je werkt met Flash en je gebruikt het momenteel alleen voor tekenen en eenvoudige animaties, het maken van video's of banners, maar je hebt er nog nooit in geprogrammeerd, dan wilde je deze kant waarschijnlijk heel graag leren kennen flash.

Wat is er gebeurd ActionScript? Hoe schrijf je code in flash? Hoe kun je volledig programmeren? flash? Wat zijn de beste tools om hiervoor te gebruiken? Dit artikel geeft antwoorden op dergelijke vragen.

Dit artikel zal dienen als een goede gids voor een beginner in het programmeren onder flash op ActionScript 3.0 en je helpen kiezen beste gereedschap hiervoor.

Wat is ActionScript?

Actiescript is een objectgeoriënteerde programmeertaal die interactiviteit, gegevensmanipulatie en meer toevoegt aan de inhoud van Flash-toepassingen.

U kunt Action Script gebruiken om interactieve multimediatoepassingen, games en websites te maken.

Als je werkt met grafische omgeving ontwikkeling Flash-IDE(bijvoorbeeld Adobe Flash Professional CS5), maar ben je nooit geïnteresseerd geweest in waar je programmacode kunt schrijven, dan maak je je waarschijnlijk al zorgen over de vraag "Waar verbergt hij zich, deze AS3?"

AS3 in Flash-IDE.

Laten we een nieuw project maken Bestand - Nieuw - ActionScript 3.0 (Fig. 1).

Fig 1. Een nieuw AS3-project aanmaken.

Er verschijnt een lege scène met een leeg frame op één laag. Nu kunt u het frame selecteren en klikken F9, waardoor het venster "Acties" wordt geopend, waarin het bewerkingsgebied zich bevindt programmacode van dit kader.

Laten we de volgende code schrijven in het venster dat wordt geopend:

ActionScript

var s: String = "het is mijn AS3-codetracering!"; spoor(en);

var s: String = "het is mijn AS3-codetracering!" ;

spoor(en);

Rijst. 2. Code geschreven in de Flash IDE.

Nu kunt u de flashdrive starten ( Ctrl+Enter). Met deze code wordt een variabele gemaakt S type Snaar(string) en kent er een initiële waarde aan toe: de string " het is mijn AS3-codetracering!". Vervolgens de functie spoor(), waarvan het argument een nieuw gemaakte variabele is, deze string (of beter gezegd, de waarde van de variabele S) wordt weergegeven op het tabblad uitgang, die standaard in staat IDE-interface naast het tabblad tijdlijn.


Op deze manier kunt u code-editors voor elk frame van de Flash-toepassing openen en sluiten (met F9).

Het lijkt erop dat de foto niet slecht is - je kunt verschillende objecten maken met animaties ( FilmClip), of statische afbeeldingen ( Sprite) en elk object heeft frames en in elk frame kun je alles programmeren wat je maar wilt. Ziet er comfortabel en flexibel uit. Maar dit is alleen op het eerste gezicht. Stel je voor dat je tientallen objecten hebt met tientallen frames en dat ze allemaal in code moeten worden beschreven met verschillende of vergelijkbare gedragslogica. In het tweede geval (soortgelijke logica) betekent dit over het algemeen honderden vergelijkbare regels code die zelfs vervelend kunnen zijn om van frame naar frame te kopiëren. Stel je voor dat je tijdens het ontwikkelingsproces iets moet veranderen. Nee - dat is niet het geval! Dit is niet de chaos waarvoor AS3 is ontworpen!

Daarnaast als je als redacteur werkt Flash-code IDE en werkte bijvoorbeeld in een andere programmeeromgeving (Delphi, Visuele studio), dan merk je dat meteen deze redacteur, op zijn zachtst gezegd, is deprimerend omdat het ongemakkelijk en onafgemaakt is.

Wat te doen, vraag je? Zoek naar code-editors van derden.

Alternatieve code-editors.

Meest beste optie voor Windows OS is dat wel het geval FlashOntwikkel(FD). U kunt de nieuwste versie downloaden van de website.

Voor iOS is er een goed alternatief FDT. Je vindt het op kantoor. website.

FlashOntwikkel.

Omdat Ik ben bezig op dit moment Ik woon meestal op Windows, dus ik zal je vertellen over de editor specifiek voor dit besturingssysteem. Als ik in de toekomst ervaring opdoe met FDT, zal ik erover schrijven.

Er is niets ingewikkelds aan de installatie, download de nieuwste versie van kantoor. site en installeren. De editor is volledig gratis en gebruikt de Flex SDK voor compilatie. Bij een standaard installatie verzorgt FD de installatie hiervan. Het enige dat u zelf voor FD hoeft te installeren, is Java.

FD heeft veel gemakken en functies, waaronder: sneltoetsen, goede automatische vervanging, klassensjablonen, de mogelijkheid om uw eigen sjablonen te maken en bestaande te bewerken.

Na de installatie kunt u een nieuw project aanmaken (Project - Nieuw project...). Het dialoogvenster voor het maken van projecten wordt geopend, zoals weergegeven in Fig. 4.


Zoals u kunt zien, kunt u met FD niet alleen AS3-projecten maken. Maar nu we geïnteresseerd zijn in het AS3-project, kies ik liever een blanco voor het project Voorlader-ohm, waarvoor gekozen is rijst. 4. Voer vervolgens de projectnaam in (field Naam) en wijs de projectmap toe (field Locatie), indien aangevinkt "Maak map voor project", dan wordt er een map met de projectnaam (Naam) aangemaakt in de Locatiemap en worden de projectbestanden daar al in geplaatst; als het selectievakje niet is aangevinkt, worden de bestanden in de opgegeven Locatiemap geplaatst.

Nadat u het project heeft aangemaakt, ziet u aan de rechterkant de structuur van de bestanden en mappen van het project, open de map src en geopend dubbelklikken bestand Main.as. Hierna zou u de code ongeveer hetzelfde moeten zien als in Fig. 5.


Laten we proberen wat code te schrijven, bijvoorbeeld ongeveer dezelfde code die we hebben geprobeerd Flash-IDE. U kunt na de commentaarregel schrijven "//ingangspunt" omdat dit is het punt waarop de scène al precies is gecreëerd. laten we een commando schrijven spoor(), in afb. 5. Ik heb mezelf deze handeling al toegestaan:]

Nu kunt u het project compileren ( F8) of onmiddellijk uitvoeren om te testen ( F5), nadat u in het venster bent uitgevoerd Uitvoer je ziet het resultaat van de functie spoor()— lijnuitgang.

Teamresultaten spoor() kan alleen worden waargenomen wanneer de applicatie wordt gestart vanuit de IDE waarin de code is gecompileerd en uitgevoerd.
Wanneer u een SWF-bestand in een browser of in een gewone Flash Player uitvoert, is het resultaat (dat wil zeggen het weergeven van het uitvoervenster) voor niemand zichtbaar.

Ik weet zeker dat je niet kunt wachten om je eerste project op AS3 te maken! En om dit te doen, moet je beginnen met het leren van de taal zelf.

AS3-taal leren.

Je kunt natuurlijk veel over AS3 schrijven, maar het is onwaarschijnlijk dat ik beter schrijf dan in boeken, vooral omdat alles al geschreven is, dus het is mijn taak om de beste literatuur aan te bevelen op basis van mijn ervaring.

Beste boek: Colin Mook — .

Een goede aanvulling op kennis: Joey Lot — .

Ik heb destijds ook dit boek gelezen: Rijke Shoop— . Hoewel het niet veel en gedetailleerd is geschreven, is het voor beginners prima te gebruiken als je Muk niet bij de hand hebt.

Deze boeken zijn voldoende voor een krachtige start! Lezen en oefenen, oefenen en lezen. Het is niet nodig om deze boeken van kaft tot kaft te gaan lezen, want... Tijdens het lezen is het belangrijk om kennis te consolideren met oefenen, en u zult zelf graag zo snel mogelijk iets doen:]

Bij het snel zoeken naar documentatie op internet is het kantoor zeer behulpzaam. documentatie van.

Voor verdere ontwikkeling, voor een goed begrip van OOP en design patterns (en dit is erg belangrijk voor een goede OOP-structuur), zal het volgende boek onmisbaar voor je zijn: William Sanders, Chandima Kumaranatung — .

Op deze site vind je ook een flink aantal aspecten van AS3-programmeren, verzameld door mijn ervaring.

Of probeer je eerste preloader te maken door het artikel te lezen: Doe-het-zelf Preloader.

De beste en succesvolle projecten!

IN de laatste tijd Steeds vaker komen er brieven via de site met vragen over waar je kunt beginnen met het leren van Flash. Ik zal er een paar publiceren, ik denk dat het voor veel beginners interessant zal zijn. De antwoorden zijn uitsluitend mijn visie en mijn ervaring, wat helemaal niet betekent dat als je het anders doet, niets zal werken. Voor de geïnteresseerden, lees hieronder (de spelling en grammatica van de berichten zijn bewaard gebleven). En als je geen beginner bent, dan zul je je zeker vervelen en vervelend zijn als je dit leest :)

“hoi)) mijn naam is Nico, ik kom uit Tadzjikistan en ik heb een groot verlangen om flash-animator te worden, maar ik weet gewoon niet waar ik moet beginnen, ik heb je site gevonden, er zijn veel nuttige dingen, maar voor mij, een beginner, zijn ze nog steeds moeilijk. geef mij alstublieft aan waar ik kan beginnen met het leren van flash-animatie)) Ik zal u zeer dankbaar zijn . en schrijf op hoe je tekent, moet ik een vakom bamboepen kopen en erop leren tekenen”

Niko, jij hebt het belangrijkste: verlangen. Als het binnen een paar weken of maanden niet verdampt, zal het resultaat dat wel zijn. Waar te beginnen - met het materieel.

1. Koop/download een Flash-tutorial van internet. Neem er een van nieuwste versies(Flash Cs4-Cs 6), vergeet leerboeken over Macromedia, FlashMX, dit is al de vorige eeuw in letterlijke zin. Hoewel er sindsdien niet veel is veranderd op het gebied van flash.

Als je van plan bent Action-script te leren (en voor een flasher is het eenvoudigweg noodzakelijk om op zijn minst de basisprincipes van as te kennen) - stop bij c As3. Nu2 langzaam tot het verleden behoort, gaan wij met de tijd mee.

Omdat ik lange tijd flash heb bestudeerd, kan ik geen specifieke publicaties aanbevelen omdat ik er niet bekend mee ben.

Je zult waarschijnlijk zeer verrast zijn, maar alle boeken over het leren van Flash bevatten dezelfde informatie :) Dit geldt vooral voor boeken voor beginners.

Ik vond de boeken How to Cheat in Adobe Flash in het Engels erg leuk van flash-animator Chris Georgenes (hij schrijft lessen over flash-animatie voor Adobe).

Dit is een serie boeken, ze worden opnieuw gepubliceerd voor elke nieuwe versie van de flitser. Als je Engels kent Taal is een uitstekend boek, een lust voor het oog met prachtige graphics.

Downloaden Hoe vals te spelen in Adobe Flash in Cs5 samen met de schijf kun je dat doen.

Mijn studie van Flash begon met de tutorial. Wat mij persoonlijk heeft geholpen bij het leren van Flash was niet het leerboek zelf, maar de videocursus die bij het leerboek werd geleverd. Laten we daarom verder gaan met punt nr. 2.

2. Videolessen.

Ik denk dat videolessen het meest effectief zijn, aangezien ik zelf Flash heb bestudeerd met behulp van een videocursus.

3. Een ander ding over het leren van flash-animatie is dat je het niet kunt doen zonder een programma als Swf Decompiller. Dit is een breker van SVF-bestanden, dat wil zeggen kant-en-klare animaties. Dat is waar we het over hebben. Hiermee kunt u het werk van professionals bekijken (niet stelen), en het is zeer nuttig bij het leren van Flash. Je neemt al klaar met werken en kijk naar de tijdlijn om te zien hoe het is gedaan, en probeer het te herhalen. De animatie wordt niet altijd correct weergegeven - maskers, tweelingen, maar het principe kan worden begrepen en er kan rekening mee worden gehouden.

4. Het is zeer effectief om Flash te leren aan de hand van specifieke voorbeelden. Stel jezelf ten doel om een ​​animatie te maken volgens een denkbeeldig scenario, bijvoorbeeld een animatie van een rijdende auto langs een bepaald traject. Als er een einddoel is, is het gemakkelijker om les te geven.

5. Als er tijdens het onderzoek vragen rijzen, kun je deze hier of in de community achterlaten onderwerp. Of op een ander forum waar flashers wonen.

Het grootste flashforum dat ik ken is flasher.ru. Dus, beste beginners, geniet van de voordelen van internet en deze bron in het bijzonder :)

6. En nog een belangrijk punt. Om te doen goede animatie– het zou een goed idee zijn om leerboeken over klassieke animatie te raadplegen (vooral als je wilt leren hoe je karakters kunt animeren, en niet alleen tekstblokken voor banners).

Als je Flash als hulpmiddel onder de knie hebt, word je niet bepaald een animator, maar eerder een 'verhuizer' die weet hoe hij objecten moet verplaatsen.

Er zijn veel boeken over klassieke animatie, stop er eerst eens mee "Timing in animatie", je kunt het meenemen.

Over waar Adobe Flash te verkrijgen is. Als je iets wilt vinden of meenemen, dan beter dan googlen er is niets. Hij weet alles :)

Is het mogelijk om zelf met Flash te leren werken? Dit is heel goed mogelijk, bijna alle goede flash-animators die ik ken hebben zichzelf flash aangeleerd, zonder cursussen of examens. Geduld, hard werken - en alles ligt in jouw handen. Ik zal dit zelfs zeggen - ik ken geen flitsers die de cursussen hebben gevolgd, ze hebben alles zelf geleerd.

“Bedankt voor de blog, ik heb veel nuttige dingen voor mezelf gevonden.

Ik ben een pure vectorontwerper en het was niet moeilijk voor mij om in Flash te tekenen. Het probleem begon toen het om animatie ging.

Zou je een les kunnen maken voor de meest hersenloze, kromme noobs)) Zodat zelfs ik het zou begrijpen))"

( Tara )

Voor beginners is er een animatieles. Ik kan me niet voorstellen hoe ik alles in één les moet passen, ik denk dat het een reeks lessen wordt. Ik was er zeker van dat het internet vol stond met lessen voor beginners, maar om de een of andere reden wordt er vaak om gevraagd. Blijf dus op de hoogte van updates op de website en

Express-moduleplan:
  • Programmeermethodologie
  • Objectprogrammering
  • Materiële en virtuele objecten. Informatieobjecten
  • ActionScript-terminologie
  • Actiepalet. Bedrijfsmodi
  • Werkplaats. Scripts parseren

Programmeermethodologie

Programmeren vereist dat een professionele mijnwerker een geweldig geheugen heeft (om alle gevolgen van het algoritme in zijn hoofd te houden) en een verbazingwekkende nauwkeurigheid (om de kleinste fout tijdens het coderen te voorkomen, wat in het dagelijks leven verschoonbaar zou zijn). Met andere woorden: de programmeur moet zelf een beetje een computer zijn.

Programmering bekleedde dergelijke posities aan het begin van de ontwikkeling computerinformatica, aan het begin van gestructureerd programmeren. De programmeur werd gezien als een sjamaan. Programmeur worden was net zo moeilijk als astronaut worden, en bijna net zo eervol.

Het is duidelijk dat deze stand van zaken volstrekt onverenigbaar is met de snelle ontwikkeling computertechnologie, waarvoor dringend aanvulling van het programmeerpersoneel door de brede massa nodig is.
Tegenwoordig worden niet alleen degenen die een computer en een programmeertaal kennen, programmeurs genoemd. Een programmeur is iemand die in staat is een snel en betrouwbaar algoritme te formaliseren en te ontwerpen (een dergelijke rol is echter altijd aan de programmeur toebedeeld; zelfs de klassieke E. Dijkstra zei dat de belangrijkste taal die een programmeur moet kennen zijn moedertaal is. taal waarin hij in het dagelijks leven spreekt).

Objectprogrammering

Objectgeoriënteerd programmeren (OOP) - moderne manier creatie van programmacodes, die de gestructureerde programmering verving. Om precies te zijn: objectprogrammering heeft het structurele programmeren niet vervangen, maar tot logische perfectie gebracht.

In objectgeoriënteerde talen kun je niet alleen gegevens construeren, maar ook gegevens plus procedures (functies):

object = data + procedures (object = eigenschappen + algoritmen)

Een object in de informatica wordt, net als elders, alles genoemd: een getal, een tabel, een uitvoerder, een programma, een knop op het scherm...

De informatica beschouwt objecten echter vanuit het perspectief van informatieprocessen. Er is niets verrassends aan deze benadering: elke wetenschap beschouwt objecten vanuit haar eigen gezichtspunt. Een natuurkundige die de vlucht van een bij observeert, bedenkt mentaal formules die het traject van de beweging van het insect beschrijven. De bioloog denkt na over het aantal ogen, vleugels en poten. Een computerwetenschapper kijkt toe hoe een bij, door middel van zijn ‘dans’, informatie over de velden met honingplanten doorgeeft aan zijn familieleden.

Normaal gesproken identificeert een computerwetenschapper drie componenten in een object:

  • Welke informatie slaat een object op (objecteigenschappen, objectgegevens)?
  • Hoe verwerkt het object informatie (objectalgoritmen, objectprocedures)?
  • Welke informatie verzendt en ontvangt het object (objectgebeurtenissen)?

Laten we een gewone tv als informatieobject verkennen.

Eigenschappen (gegevens):
kleur: zilver;
schermdiagonaal: 53 cm;
gewicht: 20 kg.

Algoritmen (procedures):
aan/uit: knop (I);
programma's schakelen: knoppen (-), (+) van het PRG-blok;
geluidsregeling: knoppen (-), (+) blok ¤.

Evenementen:
TV-ontvangst;
overdracht van beeld en geluid naar de kijker.

Materiële en virtuele objecten

Een tv is een materieel object. Het woord 'materieel' betekent 'echt', bestaand in de werkelijkheid. De tv-behuizing is gemaakt van plastic en voelt glad aan. De tv is behoorlijk zwaar. Laat hem niet op je been vallen: dat doet pijn. Als je met een hamer op de tv slaat, zal deze hoogstwaarschijnlijk kapot gaan.

Denk eens aan de tv die op de foto in deze lezing te zien is. Deze tv is uiteraard geen materiële (echte) tv. Het kan niet worden aangeraakt of geroken. Hij kan niet op de grond vallen. De tv op de foto is een virtueel object, dat wil zeggen niet echt en bestaat niet in werkelijkheid.

Informatieobjecten

Concept informatie-object erg handig voor gebruikers.

Om een ​​programma op tv te bekijken, hoef je niet te weten hoe het beeld op het scherm verschijnt en waarom deze plastic doos als een persoon spreekt. De gebruiker hoeft alleen maar te weten hoe hij de tv aanzet, hoe hij deze op het gewenste programma afstemt en hoe hij het gewenste geluidsvolume instelt. Met andere woorden: de gebruiker moet de algoritmen van het object kennen en deze kunnen gebruiken.

Informatiegebeurtenissen die verband houden met de tv (dit is de ontvangst van een televisieprogramma, de overdracht van beelden en geluid naar de kijker) stellen u in staat eigenschappen en algoritmen te gebruiken voor het beoogde doel: een interessante cartoon bekijken of het laatste nieuws ontdekken.

De eigenschappen van de tv kunnen we niet veranderen, maar we kunnen er wel rekening mee houden. Maar de eigenschappen van virtuele objecten zijn eenvoudig te veranderen.

Moderne programmering is objectgeoriënteerd. Dit betekent dat een programma dat op een computer moet worden uitgevoerd, wordt gemaakt als een set informatieobjecten.

Objecten hebben eigenschappen: geheugencellen voor het opslaan van informatie en algoritmen die gebeurtenissen verwerken, informatie afkomstig van andere objecten. Een programma dat uit objecten bestaat, heeft niet één gemeenschappelijk algoritme, maar werkt als resultaat van de informatie-interactie van objecten.

Alles gebeurt zoals in het echte leven. De wereld om ons heen bestaat immers uit individuele objecten (mensen, dieren, objecten, verschijnselen) die volgens hun eigen regels bestaan. A algemene ontwikkeling De wereld wordt bepaald door de manier waarop individuele objecten met elkaar omgaan.

Object en objectinstantie

Over het algemeen gesproken, specifieke televisie in OOP-terminologie is het geen object, maar een instantie van een object. Het object is een set documentatie in de fabriek, volgens welke televisies worden vervaardigd. Alle tv’s die van de lopende band komen, hebben dezelfde eigenschappen en dezelfde besturingsalgoritmen.

Hetzelfde geldt voor programmeren. Een object is een sjabloon. Een objectinstantie is een werkkopie.

Voorgedefinieerde Macromedia Flash-objecten. ActionScript-taal

Degenen die net met Macromedia Flash beginnen te werken, kunnen de illusie hebben dat we elk object als object kunnen classificeren. grafisch element, gelegen op het podium. Grafische elementen kunnen inderdaad worden verplaatst, gekopieerd, verwijderd, getransformeerd, samengevoegd, uitgelijnd, gegroepeerd... Ze hebben eigenschappen die we definiëren tijdens het tekenproces: kleur, grootte, vorm... De term object wordt echter gebruikt in de ActionScript-programmeertaal in een andere betekenis. Het belangrijkste object in Macromedia Flash is het MovieClip-object.

Laten we dat doen om een ​​idee te krijgen van de vooraf gedefinieerde Macromedia Flash-objecten kort overzicht sommigen van hen. Houd er rekening mee dat deze objecten kunnen worden gebruikt om toegang te krijgen tot bepaalde soorten informatie en deze te manipuleren:

Voorwerp Wiskunde— een reeks ingebouwde wiskundige constanten en functies: cos (cosinus), sin (sinus), atan (boogtangens), abs ( absolute waarde cijfers)…
Voorwerp Geluid— hiermee kunt u geluiden aan een clip toevoegen en deze bedienen terwijl de clip wordt afgespeeld. U kunt bijvoorbeeld het volume (setVolume) of de balans (setPan) aanpassen.
Voorwerp Muis— hiermee kunt u de standaardcursor verbergen, zodat u een andere kunt gebruiken.
Voorwerp FilmClip— hiermee kunt u de clip beheren. Een clip heeft eigenschappen (bijvoorbeeld _height, _rotation, _totalframes) en methoden (play, loadMovie of duplicateMovieClip).

ActionScript-terminologie

Zoals elke scripttaal gebruikt ActionScript specifieke terminologie die specifieke syntaxisregels volgt. De volgende lijst biedt een inleiding tot de belangrijkste ActionScript-termen.

Acties(opdrachten) - uitspraken die instructies geven aan de clip wat deze moet doen tijdens het afspelen. GotoAndStop verplaatst het afspelen bijvoorbeeld naar een specifiek frame.
Argumenten(argumenten), ook wel parameters genoemd, stellen u in staat waarden aan functies door te geven.
Klassen(klassen) zijn gegevenstypen die kunnen worden gemaakt om nieuwe typen objecten te definiëren. Om een ​​klasse objecten te definiëren, worden constructorfuncties gemaakt.
Constanten(constanten) - onveranderlijke elementen. De constante Math.PI heeft bijvoorbeeld altijd een specifieke waarde. Constanten zijn handig voor het vergelijken van waarden.
Constructeurs(constructors) zijn functies die worden gebruikt om eigenschappen en methoden van een klasse te definiëren.
Gegevenstypen(gegevenstypen) - een reeks waarden en bewerkingen. Tekenreeksen, getallen, waar en onwaar (Booleaanse) waarden en clips zijn allemaal ActionScript-gegevenstypen.
Evenementen(gebeurtenissen) - acties die plaatsvinden terwijl een clip wordt afgespeeld. Er vinden bijvoorbeeld verschillende gebeurtenissen plaats wanneer een clip wordt geladen, wanneer de speler een frame afspeelt, de gebruiker op een knop in de clip klikt of op een knop op het toetsenbord drukt.
Uitdrukkingen(expressies) - alle delen van uitspraken die waarden hebben. 2 + 2 is bijvoorbeeld een uitdrukking.
Functies(functies) zijn blokken herbruikbare code waaraan argumenten (parameters) kunnen worden doorgegeven en waarden kunnen retourneren. Aan de functie getProperty wordt bijvoorbeeld een eigenschapsnaam en een clipnaam doorgegeven, en wordt de waarde van die eigenschap geretourneerd. De functie getVersion retourneert Flash-versie Speler die de clip afspeelt.
Behandelaars- speciale opdrachten die gebeurtenissen zoals mouseDown of load besturen.
Identificatiegegevens(identifiers) - namen die worden gebruikt om variabelen, eigenschappen, objecten, functies en methoden te identificeren. Het eerste teken moet een letter, een onderstrepingsteken (_) of een dollarteken ($) zijn. Elk volgend teken moet een letter, een onderstrepingsteken (_), een cijfer of een dollarteken ($) zijn. De variabelenaam is bijvoorbeeld firstName.
Instanties(instances) - objecten die tot een specifieke klasse behoren. Elke instantie van een klasse bevat alle eigenschappen en methoden van die klasse. Alle clips zijn instanties met eigenschappen (bijvoorbeeld _alpha en _visible) en methoden (bijvoorbeeld gotoAndPlay en getURL) van de klasse MovieClip.
Instantienamen— unieke namen waarmee u een clipinstantie in scripts kunt opgeven. Het oorspronkelijke symbool in de bibliotheek kan bijvoorbeeld counter heten, en de twee instanties ervan kunnen scorePlayer1 en scorePlayer2 heten.
Trefwoorden(trefwoorden) zijn gereserveerde woorden met een speciale betekenis. Bijvoorbeeld var- trefwoord, gebruikt om lokale variabelen te declareren.
Methoden(methoden) - functies die inherent zijn aan een object. Zodra een functie is gedefinieerd, kan deze als methode voor dat object worden aangeroepen.
Objecten(objecten) zijn verzamelingen eigenschappen, die elk hun eigen naam en waarde hebben. Objecten bieden toegang tot verschillende soorten gegevens. Het vooraf gedefinieerde object Date levert bijvoorbeeld informatie van de systeemklok.
Exploitanten(operatoren) - bereken nieuwe waarden uit een of meer waarden. De opteloperator (+) voegt bijvoorbeeld twee of meer waarden toe om een ​​nieuwe waarde te produceren.
Eigenschappen(eigenschappen) - attributen die een object definiëren. _visible is bijvoorbeeld een eigenschap van alle clips die bepaalt of de clip zichtbaar is of niet.
Variabelen(variabelen) - ID's die de waarde van elk gegevenstype bevatten. Variabelen kunnen worden gemaakt, gewijzigd en bijgewerkt. De waarden die ze bevatten kunnen worden opgevraagd voor gebruik in een script.

De mogelijkheden van de ActionScript-taal zijn zo veelomvattend dat het eenvoudigweg onrealistisch is om ze binnen het bestek van deze cursus te behandelen. Daarom zullen we ons beperken tot het beschrijven van de basisconcepten van de taal en de algemene regels voor het bouwen van scripts in ActionScript.

Met ActionScript kunt u scripts maken voor klem(symbool voor filmcliptype), knoppen(symbooltype Knop) of sleutelframe(sleutelframe). Elk dergelijk script (dat wil zeggen, eigenlijk een programma in de ActionScript-taal) is nauw verbonden met het overeenkomstige element van de video. Bij het publiceren van een video wordt de scripttekst, net als andere elementen van de film, geëxporteerd naar een SWF-bestand. Als u dat wenst, kunt u het echter opslaan in apart bestand met verlenging als(dit is een gewoon tekstbestand) om later in een andere film te gebruiken.

Actiepalet

Met het Acties-palet kunt u scripts voor objecten (clips en knoppen) en sleutelframes maken en bewerken. U kunt vooraf gedefinieerde opdrachten selecteren uit de lijst met opdrachten - Gereedschapskistlijst (aan de linkerkant van het palet), ze naar de rechterkant van het paneel slepen; Gebruik de knoppen boven het tekstveld om een ​​opdracht te selecteren, te verwijderen en opdrachten opnieuw te rangschikken.

IN Normale modus(normale modus) kunt u opdrachten schrijven met behulp van parametervelden (argumentvelden).

IN Expert-modus(expertmodus) kunt u opdrachten rechtstreeks in het tekstveld schrijven en bewerken, net als in een gewone teksteditor.

Wanneer u een script maakt door opdrachten uit een lijst te selecteren, moet u er op letten dat deze opdrachten in categorieën zijn georganiseerd:

Acties(opdrachten) - ActionScript-taalprocedures die “universeel” van aard zijn, dat wil zeggen onafhankelijk van de kenmerken van de klasse van objecten (in tegenstelling tot methoden van objecten die tot een specifieke klasse behoren); Deze categorie omvat ook logische besturingsoperatoren die traditioneel zijn voor de meeste programmeertalen op hoog niveau (logische voorwaarden controleren, een lus organiseren, enz.).

Exploitanten(operatoren) - logisch en rekenkundige bewerkingen(optellen, aftrekken, vergelijken, enz.).

Functies(functies) - vooraf gedefinieerde (bibliotheek)functies (ze bevatten bijvoorbeeld een functie voor het controleren van het versienummer van een Flash-speler).

Constante(constanten).

Eigenschappen(eigenschappen) - eigenschappen van objecten die niet afhankelijk zijn van de klasse (bijvoorbeeld het transparantieniveau van een afbeelding).

Objecten(objecten) - vooraf gedefinieerde objecten die in een script kunnen worden gebruikt (er is bijvoorbeeld een object voor het werken met datum en tijd); Deze sectie bevat ook aangepaste objectklassen.

Afgekeurd(verouderd) - constructies die niet worden aanbevolen voor gebruik in scripts (als verouderd).

Flash UI-componenten(componenten van de gebruikersinterface).

Naast de genoemde secties bevat de Action Toolbox-lijst ook een sectie Index, dat een alfabetische lijst bevat van alle taalcomponenten.

Markering en syntaxiscontrole

Het syntaxisaccentueringssysteem kleurt bepaalde ActionScript-elementen in verschillende kleuren.

Trefwoorden en vooraf gedefinieerde ID's (bijvoorbeeld gotoAndStop, play en stop) worden donkerblauw gemarkeerd.

Opmerkingen zijn lichtgrijs gemarkeerd.

Lijnen omgeven door aanhalingstekens zijn helderblauw.

IN normale modus Alle syntaxisfouten worden gemarkeerd met een effen rode achtergrond in het scriptvenster. Dit vereenvoudigt het probleem van het vinden van fouten. Als u met uw muis over een foutopdracht beweegt, verschijnt er een tooltip met de foutmelding die bij die opdracht hoort. Wanneer u deze opdracht selecteert, verschijnt er ook een foutmelding in de statusbalk van de optiebalk.

Om het huidige script op fouten te controleren, moet u de sectie gebruiken Controleer syntaxis vanuit het vervolgkeuzemenu in de rechterbovenhoek van het Acties-palet of de overeenkomstige knop (vink aan blauwe kleur in Expert-modus).

Werkplaats. Scripts parseren
Video nr. 1

Hier is een zeer bescheiden video waarin het werk van hyperlinks is georganiseerd. Het tekstblok in de video is statische tekst, waarvoor de volgende eigenschappen zijn gedefinieerd in het palet Eigenschappen:

Naar sectie URL-link het adres van het document wordt geregistreerd. In de sectie Doel u specificeert het venster of frame waarin het opgevraagde document moet worden geladen. In deze video wordt het document in een nieuw browservenster geladen.

We maken een script voor de knop met behulp van het Acties-palet. Om dit te doen, selecteert u de knop met het Pijl-gereedschap en vouwt u het Acties-palet uit.

Om de opdracht getURL in uw werk te gebruiken, gaat u naar de categorie Acties > Browser/Netwerk > getURL. Ga vervolgens naar de parametervelden en bepaal het documentadres...
In deze video zal ik gedetailleerder ingaan op enkele nuances van het werken met het Acties-palet.

Parameter Raam specificeert het venster of frame waarin het opgevraagde document moet worden geladen. De parameterwaarde wordt geselecteerd met behulp van een vervolgkeuzelijst met daarin de volgende opties(ze zijn vergelijkbaar met de waarden van het doelattribuut van de tag in HTML):

_zelf— het document wordt in het huidige venster of frame geladen;
_leeg— het document wordt in een nieuw venster geladen;
_ouder— het document wordt in het bovenliggende of huidige frame geladen;
_bovenkant— het document wordt in een frame van een hoger hiërarchieniveau of in het huidige venster geladen.

Indien nodig kan de waarde van deze parameter worden verkregen als resultaat van het berekenen van de uitdrukking. Vink in dit geval het vakje aan Uitdrukking(expressie) rechts van de vensterlijst.

Parameter Variabelen Hiermee kunt u de methode opgeven voor het verzenden van gegevens via opgegeven URL. De parameterwaarde wordt geselecteerd uit de vervolgkeuzelijst, die drie opties bevat:

Niet verzenden(niet verzenden) – gegevensoverdracht is niet vereist;
Verzenden met GET(verzenden met GET) - de GET-methode wordt gebruikt om gegevens te verzenden;
Verzenden met POST(verzenden met POST) - de POST-methode wordt gebruikt om gegevens te verzenden.

Laat me je eraan herinneren dat het verschil tussen het gebruik van de GET- en POST-methoden om gegevens naar de server te verzenden, is dat bij de eerste methode de verzonden gegevens aan de adresregel worden toegevoegd. Omdat de adreslengte beperkt is tot 256 tekens, is de hoeveelheid verzonden gegevens ook beperkt.

Merk op dat de opdracht getURL automatisch tussen accolades van een soort on(release) werd geplaatst. Feit is dat wanneer je een actie aan een knop of clip toewijst, Flash automatisch een speciale besturingsprocedure (handler) genereert, die in veel objectgeoriënteerde talen een “event handler” (of “selector”) wordt genoemd. De handler controleert of de gebeurtenis heeft plaatsgevonden bepaald type, en als dat zo is, initieert het de juiste reeks acties tussen accolades.

Voor knoppen heeft de handler een naam op, en voor clips - onClipEvent. De naam van de handler gaat vooraf aan de lijst met gebeurtenissen waarop de handler moet reageren. Het ontwerp is bijvoorbeeld:
aan(loslaten, toetsaanslag:"A")
betekent dat de handler moet reageren op twee soorten gebeurtenissen: loslaten (de muisknop wordt losgelaten) en KeyPress: "A" (de "A"-toets wordt op het toetsenbord ingedrukt).

Voor knoppen in ActionScript zijn er volgende typen evenementen:

Druk op— de gebruiker drukt op de muisknop wanneer de aanwijzer op de knopafbeelding (film) staat.

Uitgave— de gebruiker drukt op de muisknop en laat deze vervolgens los (de aanwijzer bevindt zich boven de knopafbeelding).

Buiten loslaten— de gebruiker laat de muisknop los wanneer de aanwijzer niet boven de knopafbeelding staat.

Toets indrukken— de gebruiker drukt op een specifieke toets op het toetsenbord; Voor deze gebeurtenis moet u bovendien een sleutel opgeven.

Rol om— de gebruiker beweegt de aanwijzer over de knopafbeelding.

Uitrollen— de gebruiker beweegt de aanwijzer buiten de knopafbeelding.

Sleep over- de gebruiker drukt op de muisknop wanneer de aanwijzer boven de knop staat, beweegt deze buiten de knop en plaatst deze vervolgens weer boven de knop.

Sleep naar buiten- De gebruiker drukt op de muisknop terwijl de aanwijzer boven de knop staat en beweegt de aanwijzer vervolgens buiten de knop.

Om de lijst met gebeurtenissen waarop het filmobject moet reageren te wijzigen, klikt u op de regel van het script die de naam van de handler bevat. Hierdoor wordt het formaat van het parametervenster gewijzigd en verschijnt er een groep selectievakjes waarmee u de gewenste gebeurtenissen kunt selecteren. De gemaakte keuze wordt direct weergegeven in het scriptvenster.

En ten slotte werken er maar één frame en één laag in de video.

Video nr. 2

In deze video leren we hoe u acties schrijft voor een knop, een frame en een clip.

Voor comfortabel werk In de video moet je drie lagen maken.

Laag actie. In deze laag is er, net als in alle andere, slechts één frame, het is leeg, het is het belangrijkste en er is een script aan toegewezen:

Fscommand("toonmenu", "false"); fscommand("volledig scherm", "waar");

Deze lijnen bepalen het gedrag van uw video tijdens het afspelen. Op de eerste regel kunt u het menu in de speler verwijderen (dit is erg belangrijk als uw video een testprogramma is en de gebruiker het recht moet worden ontzegd om een ​​stap terug te doen Controle > Stap terug). De tweede regel breidt uw video uit naar volledig scherm. Om deze regels te schrijven, moet je op dit frame gaan staan ​​en naar de categorie Acties > Browser/Netwerk > fscommand gaan.

Laag pinguïn. Deze laag bevat blokken statische en dynamische tekst, een knop en een clip. Blokken met statische tekst worden gemarkeerd groente,blokken met dynamische tekst in rood.

Laten we eerst dynamische tekstblokken definiëren. Om een ​​blok dynamische tekst te maken, gebruikt u het reeds bekende Tekstgereedschap. De inhoud van het blok blijft echter leeg. Het vullen van deze blokken met gegevens wijzen wij toe aan de knop. De grootte van de blokken kan worden aangepast tijdens het foutopsporingsproces van de video. Elk blok dynamische tekst moet een naam krijgen. Let op het Eigenschappenpalet. Onder Teksttype selecteert u Dynamische tekst onder Var(Variabel) Definieer de bloknaam.

In deze video krijgt het dynamische blok dat zich tegenover de statische tekst 'instance width' bevindt, bijvoorbeeld de naam w, bijvoorbeeld hoogte H, instantienaam N, coördinaten van het registratiepunt van de instantie twee blokken X En j. Houd er rekening mee dat Flash blokken dynamische tekst markeert met een stippellijn.

Laten we ten tweede een clip maken waarin een grafisch element - een pinguïn - wordt geplaatst. In deze video zijn dit geïmporteerde afbeeldingen in wmf-indeling. Nadat de afbeeldingen zijn geïmporteerd, gebruikt u de opdracht Converteren naar symbool en verandert u deze in een clip (een symbool zoals Filmclip), laten we deze bijvoorbeeld penguin_vl noemen. De clip wordt automatisch in de videotheek geplaatst, maar moet van het podium worden verwijderd. De volgende stap is het maken van een nieuwe clip. Laten we het commando Nieuw symbool gebruiken en deze clip de naam penguin_or geven. Plaats in het eerste frame van deze clip, met behulp van de videobibliotheek, een exemplaar van de pinguïn_vl-clip (we zullen er later het script naar schrijven). Voeg nog een hoofdframe toe aan de clip.

Keer terug naar het podium en plaats een exemplaar van de pinguïn_of clip erop. En plaats het niet alleen, maar schrijf het op het podium. Om dit te doen, gaat u naar het palet Eigenschappen en specificeert u in de sectie Instance Name de naam van de instance, bijvoorbeeld penguin (u heeft echter het recht om deze de gewenste naam te geven, onthoud alleen de regels voor het vormen van namen in ActionScript). Laten we nu de clip, waarvan een exemplaar op het podium is geplaatst, bewerken met behulp van de opdracht Bewerken. Laten we een script schrijven voor de clip in het eerste frame:

OnClipEvent (laden) ( setProperty("_root.pinguïn", _alpha, willekeurig(50)+50); )

Team setEigenschap Hiermee kunt u de eigenschap van een clipinstantie wijzigen terwijl de clip wordt afgespeeld. Laten we proberen de syntaxis te begrijpen met behulp van het algemene opdrachtformaat:

setProperty(doel, eigenschap, expressie);

doel- dit is het pad naar de clipinstantie waarvan de eigenschap moet worden gewijzigd (_root.pinguïn, omdat we het pad naar de instantie kennen, verwijzen we ernaar met de naam die we eraan hebben toegewezen in het Eigenschappenpalet).

eigendom— de eigenschap die moet worden gewijzigd (_alpha, in ons geval is dit de transparantie van de instantie).

uitdrukking— waarde toegewezen aan de eigenschap (random(50)+50, willekeurig nummer van 50 tot 100). Zorg ervoor dat u het selectievakje Expressie aanvinkt. Omdat de waarde van deze parameter moet worden verkregen als resultaat van het evalueren van de expressie.

Om ervoor te zorgen dat de transparantie van de pinguïnclip voortdurend verandert terwijl de video wordt afgespeeld, hebben we twee frames gemaakt. Laat me je eraan herinneren dat alleen in het eerste frame van de clip een script werd geschreven. Het tweede frame kan leeg blijven, maar de pinguïn zal niet flikkeren, maar zeer onaangenaam knipperen. Zorg ervoor dat je met de video experimenteert en zorg ervoor dat mijn woorden kloppen.

En ook: waarom staat er vóór de naam van de kopie op het podium geschreven? _wortel?

Wanneer u de opdracht setProperty gebruikt om het pad naar een object op te geven, moet u naar de knop verwijzen Voeg een doelpad in(deze knop ziet eruit als een draadkruis). In dit geval wordt het venster Een doelpad invoegen voor u geopend, waarmee u het bestemmingspad (dat wil zeggen het adres) kunt beschrijven.


Dit venster bevat de volgende hoofdinterface-elementen:

Een filmboom die de hiërarchie weerspiegelt van filmobjecten die toegankelijk zijn via een script.

Omdat bij toegang tot een object de naam van de corresponderende instantie (knop, clip, tekstveld), dan worden alleen benoemde (geregistreerd in het werkgebied) exemplaren in de boom opgenomen.

Het hoofdelement van de boom hangt af van de adresseringsmethode: voor een absoluut adres is dit een trefwoord _wortel(dat wil zeggen, de hoofdfilm), voor relatief - het woord dit(dat wil zeggen, het huidige timingdiagram).

Tekstveld met meerdere regels Doel(bestemming), bedoeld voor het invoeren en aanpassen van het bestemmingspad; Als u een element in de filmboom selecteert, verschijnt de bijbehorende route in het veld Doel, dat handmatig kan worden gewijzigd of aangevuld.

Paar schakelaars Modus(modus), waarmee u de adresseringsmethode kunt selecteren (relatief - relatief of absoluut - absoluut). De standaardinstelling is relatieve adressering.

Paar schakelaars Notatie(notatie) waarmee u het notatieformaat van het bestemmingspad kunt selecteren: optie Doten(punten) betekent het gebruik van puntnotatie; optie Schuine strepen(slashes) komt overeen met de notatie met behulp van schuine strepen (dit is een "verouderde" stijl die wordt gebruikt voor compatibiliteit met eerdere versies van ActionScript). Bij het gebruik van schuine strepen is het notatieformaat hetzelfde als dat wordt gebruikt om URL's in HTML-documenten te schrijven.

Laten we verder werken aan de video.

U moet een knop op dezelfde laag plaatsen. In deze video heb ik de Flash-bibliotheek gebruikt.

We wijzen een script toe aan de knop:

Aan (vrijgave) ( w = getProperty(_root.pinguïn, _width); n = getProperty(_root.pinguïn, _name); h = getProperty(_root.pinguïn, _height); x = getProperty(_root.pinguïn, _x); y = getProperty(_root.pinguïn, _y);

Functie krijg eigendom retourneert de waarde van de opgegeven eigenschap van de opgegeven clip. Laten we proberen de syntaxis te begrijpen met behulp van het algemene opdrachtformaat:

getProperty(instantienaam, eigenschap);

instantienaam— de naam van de clipinstantie waarvan u de eigenschap wilt verkrijgen.

eigendom— naam van de clipeigenschap.

Om de door de functie berekende waarde toe te kennen, moet u naar de categorie Actie > Variabelen > variabele instellen gaan.

Laag ramka. Dit is de decoratielaag.

Test de video en breng indien nodig correcties aan. Experimenteer met de eigenschappen.

Huiswerk: Basisprincipes van programmeren in Macromedia Flash MX

De huiswerkopdrachten voor deze cursus bevatten enkele prachtige aforismen.

Onze kennis is als een bal; hoe groter hij wordt, hoe meer contactpunten hij heeft met het onbekende.
Efremov Ivan Antonovitsj

Dupliceer de video's die in deze lezing worden gepresenteerd.

Lever je voltooide opdracht in als bestanden in fla-formaat (als de totale bestandsgrootte groter is dan 150 KB, archiveer de bestanden dan) en stuur het naar je docent.

Test: Basisprincipes van programmeren in Macromedia Flash MX

Het testmateriaal bevat vragen waarmee u de kracht kunt testen van de kennis die u tijdens het werk aan de eerste module van de cursus hebt verworven.
De test is gemaakt in Macromedia Flash MX en is een interactief flashfilmpje: