Lag en Dynamic Copyright Notice i Flash: Part 1

Make en Dynamic Copyright Notice i Flash: Del 1
Del
Del
Del
Del

Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

Denne enorme opplæringen vil hjelpe deg å lære en rekke nyttige programmeringsteknikker, alt bundet sammen med en tilsynelatende enkel (og svært fleksibel) sluttresultatet. Ta en kopp kaffe og la oss hoppe inn i første del ..



Fra første titt på demoen, jeg er sikker på at du vil tenke, hva er big deal? Dette kan gjøres med et enkelt tidslinje tween og en stopper () virkning i den siste rammen. Men i dette tilfellet, blir opptredener bedra. Selve hensikten med denne opplæringen er ikke å lære deg hvordan å lage en primitiv opphavsrett, men å vise deg en stor klynge av nyttige programmeringsteknikker, informasjon om opphavsrett tjener som et enkelt eksempel.

Selvfølgelig kan man hevde at bruk av komplekse objektorientert programmering for en slik grunnleggende oppgave er som å skyte en ballistisk rakett swat en flue. Men igjen, hvis noen faktisk ville klare å treffe en flue bevisst med en ballistisk rakett, som vil si mye om vedkommendes skyting, ville det ikke? Uansett, i et øyeblikk vil du se at vår lille modulen pakker mye mer verdi enn det som er på første åpen

Fra denne opplæringen vil du lære en rekke nyttige teknikker.

  • Opprette tidsbaserte animasjoner

    Transforming en String mottatt fra XML til en MovieClip eksempel navn

    Korrekt tolke XML-String verdier som Booleans

    Basic feilbehandling ved passering verdier fra XML

    Tegne former med kode

    Opprette masker med kode

    Legge til og fjerne event handlers

    Opprette skalering hendelser

    Legge til tekstfelt kode

    Tekst formatering

    Arbeide med Date klassen

    I mellomtiden kan du laste ned alle filene som brukes i denne opplæringen fra linken ovenfor.



    Trinn 1: Lag en FLA fil

    La oss begynne med å lage en ny FLA fil

    I denne filen, la oss endre scenebredde 600 og scene. høyden til 300, og la oss endre fargen på scenen fra hvit til svart. Vi skal lage en rektangulær MovieClip med bredde 550 og høyde på 150, og la oss plassere den på scenen på X koordinat på 25 og Y koordinat på 0. I demoen filen jeg bruker i denne opplæringen, har jeg satt alfa av at MovieClip til 0, og klippet omtrent dekker ordet PROJECT som vises i bakgrunnen, men i ditt FLA den MovieClip kan være av hvilken som helst farge og tetthet, og det trenger ikke være noe tekst på bakgrunnen.

    En ting er avgjørende skjønt: du bør gi MovieClip på scenen forekomsten navnet mcContentModule
    for våre testformål

    La oss nå knytte vår FLA filen til skikken Document. klassen vi har ennå til å lage, ved å skrive inn banen til klassen i dokument Class tekstfeltet i Properties panelet av vår FLA. For sin tutorial, skriv CopyrightDocumentClass product: (navnet på den tilpassede klassen vi skal opprette). For mer informasjon om å arbeide med dokument klassen, ta kontakt med dette dokumentet Class Quick Tips

    La oss redde vårt prosjekt som CopyrightTest.fla



    Trinn 2:.. Skissere Ønsket funksjonalitet

    Før vi begynner koding, la oss finne ut hva vi ønsker vår opphavsrett modul for å være som
    , og hva vi vil ha det for å gjøre
    . Dette vil hjelpe oss med å organisere koden godt helt fra start.

    Vår opphavsrettserklæring skal være enkelt å gjenbruke. Det er derfor vi kommer til å skrive det som en tilpasset Actionscript 3.0 klasse.

    Innkallingen opphavsrett bør omfatte inneværende år og oppdateres automatisk hvert påfølgende år. Til dette trenger vi å bruke Date klassen.

    Innkallingen opphavsrett skal være animert, og vi ønsker at animasjonen å spille jevnt, selv når de vises på en veldig treg datamaskin. Dette kan vi oppnå ved å bruke Timer klassebasert animasjon.

    Innkallingen opphavsrett bør ha mulighet til å være knyttet til en annen nettside.

    Innkallingen opphavsrett må selv-align venstre eller høyre, enten i nærheten av den nedre kanten av scenen eller i nærheten av den nedre kant av en valgt MovieClip i prosjektet. Det bør også omstille seg når nettleservinduet er endret. Vi må endre størrelse hendelsesbehandling /lytteren combo for at

    Vi ønsker også vår modul for å være dynamisk tilpasses fra en XML-fil. På denne måten vi vil ha en enklere tid å formatere den, og trenger ikke å publisere .swf fil hver gang vi gjør en liten endring i måten vår erklæring om opphavsrett ser ut og oppfører seg. Sende data fra en XML-fil er også veldig praktisk for sluttbrukerne, spesielt for dem som vet lite eller ingenting om Actionscript 3.0.

    Etter litt brainstorming, skaper vi en liste over XML-tilpass funksjoner vi? d liker å ha i vår modul:


      font

      Skriftstørrelsen

      font color

      font vekt (fet eller vanlig )

      Den skriftstil (kursiv eller vanlig)

      Dekorasjonen font (understreking eller ingen)

      Lenken url (i tilfelle på et tidspunkt vi ønsker informasjon om opphavsrett til være knyttet til en annen nettside)

      Lenken mål (åpne den koblede siden i samme vindu eller i nytt vindu)

      Den første året av opphavsrett

      navnet på selskapet eller personen som eier opphavsretten

      Den valgfrie tilleggsuttalelse, for eksempel "enerett"

      Plasseringen av opphavsrettserklæring (i forhold til scenen eller til en MovieClip av vår Valget)

      Den eksempel navnet på MovieClip (hvis informasjon om opphavsrett er plassert i forhold til en MovieClip)

      Justeringen av opphavsrettserklæring (venstre eller høyre)

      horisontal forskyvning i piksler (i forhold til venstre eller høyre kant av scenen eller MovieClip)

      Den vertikale forskyvningen i piksler (i forhold til den nederste kanten av scenen eller MovieClip)

      Den valg lysbilde -i effekt (vi ønsker å være i stand til å slå det på eller av)

      Hastigheten på slide-in effekt

      Den valg fade-in effekt (vi ønsker å være i stand til å veksle den på eller av)

      Den innledende opasitet (hvis fade-in effekt brukes)

      Hastigheten på fade-in effekt

      Den endelige opasitet Anmeldelser

      Twenty to alternativer for enkel tilpasning, pluss en masse innledende funksjoner, slik som du kan se, opphavsrett modulen vi er i ferd med å skape er faktisk ikke så enkelt som det kan ha dukket opp først.



      Trinn 3: Opprett XML File

      Som du kanskje har gjettet, vil vi nå slå en liste over funksjoner som kan tilpasses fra forrige trinn i en XML-fil som skal styre vår opphavsrett modul . Ingenting er enklere, men hvis du ønsker mer informasjon, ta en titt på denne opplæringen på XML for Flash.

      La oss lage en ny XML-fil. Vi kan gjøre dette i enhver ikke-spesialiserte tekstredigeringsprogram, for eksempel TextEdit for Mac eller WordPad for PC. (Alternativt kan du bruke en spesialisert editor, for eksempel Adobe Dreamweaver.)

      Alt vi trenger å gjøre nå er å forvandle vanlig engelsk beskrivelser av våre egendefinerte funksjoner fra forrige trinn i den legitime XML-kode, og innsatsen noen vilkårlige verdier inn i den. Her er resultatet:?
      ≪ xml version = "1.0" encoding = "ISO-8859-1" > < theCopyright > < theFont > Verdana < /theFont > < theFontSize > 10 < /theFontSize > < theFontColor > 0xFFFFFF < /theFontColor > < theFontBold > false < /theFontBold > < theFontItalic > false < /theFontItalic > < theFontUnderline > false < /theFontUnderline > < thelink > http: //active.tutsplus.com/< /thelink > < theTarget > _blank < /theTarget > < initialYear > 2 006 < /initialYear > < theHolder >. Copyright innehaverens navn < /theHolder > < theStatement >. enerett < /theStatement > < relativeTo > stadium < /relativeTo > < movieClipName > mcContentModule < /movieClipName > < leftOrRight > venstre < /leftOrRight > < theXOffset > 10 < /theXOffset > < theYOffset > 10 < /theYOffset > < slideIn > ekte < /slideIn > < slideInSpeed ​​> 10 < /slideInSpeed ​​> < slideInSpeedIndex > 10 < /slideInSpeedIndex > < fadeIn > false < /fadeIn > < fadeInSpeed ​​> 10 < /fadeInSpeed ​​> < fadeInSpeedIndex > 10 < /fadeInSpeedIndex > < initialAlpha > 0,1 < /initialAlpha > < finalAlpha > 1 < /finalAlpha > < /theCopyright >

      La oss lagre denne filen som Copyright.xml
      i en mappe som heter CopyrightXML
      . VIKTIG: mappen CopyrightXML
      bør plasseres i samme katalog som vår CopyrightTest.fla
      fil



      . Trinn 4: Variabler Declaration

      I dette trinnet skal vi bruke vår nettopp opprettet XML-fil som modell for den opprinnelige listen over variabler vi skal bruke i vår .as fil. Disse variablene vil holde verdiene som sendes fra XML-filen.

      Men først skal vi lage en ny .as fil og lagre den i samme katalog der vi har CopyrightXML mappen. La oss kalle våre nye fil CopyrightDocumentClass.as.

      Det vi har nå er bare tom .as filen, så la oss sette noen kode inn i den.

      Det er tjuefire
      elementer i vår XML-fil, men vi trenger tjueni
      variabler å passere disse verdiene til våre Actionscript-fil, og her er hvorfor ..

      Vi kan tenke på alle de verdiene som ble holdt i XML-filen som strenger. Noen av dem vises numerisk og andre ser umiskjennelig boolsk, men for vårt formål, de er alle strenger likevel. I vår Actionscript-fil, vil vi holde noen av de strengene som strenger. For eksempel navnet på skriften, url, vil navnet fra rettighetsinnehaver og uttalelsen forbli strenger i vår Actionscript-fil. Andre verdier må konverteres fra strenger til tall og Booleans. Vi trenger ikke å gjøre noe spesielt for å konvertere strenger til tall i koden vår: vi vil bare bruke implisitt konvertering. Ting er litt mer utfordrende med Booleans.

      Det er praktisk å bruke true Hotell og falske
      verdier i XML. De er selvforklarende og nyttig når noe må slås av og på dynamisk. Men disse er faktisk ikke Booleans men strengverdier, og da gikk til Actionscript og konvertert direkte til Booleans, både "ekte" og "falske" verdier vil returnere true
      . Eventuelle ikke-tomme streng avkastning true
      når konverteres direkte til en boolsk.

      Senere i denne opplæringen vil vi bruke if ... else if
      betinget utsagn å konvertere strenger til Booleans, og for disse utsagnene, vi trenger en streng og en boolsk versjon av hver sann eller falsk verdi sendt fra vår XML-fil. Dette er grunnen til at vi trenger flere variabler å sende verdier fra XML enn det er elementer i vår XML-fil.

      For eksempel, i stedet for å ha bare én variabel kalt theFontBold
      vi må ha to variabler: theFontBoldString
      å holde String verdi og theFontBold
      å holde boolsk verdi. Så i stedet for dette:
      Var theFontBold: Boolean;

      Vi vil ha dette:
      Var theFontBoldString: String; Var theFontBold: Boolean;

      Annet enn det, vil vi ganske mye å gå gjennom vår XML fil topp til bunn og oversette XML-elementer direkte til variabler som vi nå skriver i vår Actionscript-fil. Dette er hva vi har i vår Actionscript-fil som et resultat:
      //THE variabeldeklarasjoner //Variablene å holde verdiene som sendes fra XML Var theFont: String; Var theFontSize: UINT; Var theFontColor: UINT; Var theFontBoldString: String; Var theFontBold: Boolean; Var theFontItalicString: String; Var theFontItalic: Boolean; Var theFontUnderlineString: String; Var theFontUnderline: Boolean; Var thelink: String; Var theTarget: String; Var initialYear: String; Var theHolder: String; Var theStatement: String; Var relativeTo: String; Var movieClipName: String; Var leftOrRight: String; Var theXOffset: int; Var theYOffset: int; Var slideInString: String; Var slideIn: Boolean; Var slideInSpeed: UINT; Var slideInSpeedIndex: UINT; Var fadeInString: String; Var fadeIn: Boolean; Var fadeInSpeed: UINT; Var fadeInSpeedIndex: Number; Var initialAlpha: Number; Var finalAlpha: Number;

      Merk at når erklære datatypen for numeriske variabler, bruker vi uint
      datatype når variabelen vil holde et usignert heltall, int
      datatype hvis vår heltallsvariabelen kan ha en negativ verdi (for eksempel kan vår X og Y forskyvninger være negativ), og Tall
      data skriver bare når vi bruker desimaler. Dette er den mest ressursbesparende måte å tilordne numeriske datatyper i variabler.

      Jeg vil ikke minne deg igjen, men la oss enige om å redde vår Actionscript-fil nå og da så vi gjøre endringer i den.



      Trinn 5: Variabler tekstformat

      De første seks elementer i vår XML-filen og den første ni av de variablene vi opprettet i forrige trinn avtale med tekstformatering. For å aktivere tekstformatering, må vi legge til en ny variabel som tilhører tekstformat datatype. La oss kalle vår variabel tfCopyright
      , der tf
      står for tekstformat
      //tekstformat variabel Var tfCopyright. Tekstformat;

      Den variable vi har bare erklært vil være å ta vare på alle våre tekstformatering behov



      Trinn 6:. Variabler tekstfeltet

      For å skrive ut formatert tekst for hele verden å se, trenger vi en forekomst av den Textfield klassen. Vi skal lage selve Textfield objektet litt senere, men nå som vi fyller vår liste over variabler, ville det gjøre perfekt fornuftig å deklarere variabelen som til slutt vil holde vår Textfield eksempel. La oss kalle den variabelen txtCopyright:
      //Textfield variabel Var txtCopyright: Textfield;

      Som du ser, vi erklære alle variablene i vår kode før tildele noen verdier til dem og før du lager funksjonene som ville manipulere disse verdier. Selv om det er ikke den eneste måten å skrive Actionscript, og sannsynligvis ikke engang den enkleste, har beskrevet kodepraksis mange fordeler. Det kan hjelpe en programmerer til å danne en veldig klar idé om koden før selve kodingen begynner. Det gir svært lesbar, velstrukturert kode. Og sist men ikke minst (jeg håper du tilgir meg denne lille avstikker inn i psykologi av programmering), kan det gjøre en programmerer føle seg trygg og sikker om å være i stand til å gjøre koden gjør akkurat det den skal gjøre.

      Så selv om du ikke forstår hvorfor vi erklære noen av variablene, kan du bære med meg, og jeg lover at du vil forstå deres formål etter den tid vi er ferdige med opplæringen.


      < h2> Trinn 7: Variabler Laster XML Data

      For å laste data fra vår XML-fil til vår Actionscript-fil, trenger vi to typer objekter: et URLLoader objekt og en XML-objekt. La oss nå erklærer variablene som til slutt vil holde disse objektene i vår kode:
      //XML laste variabler Var xmlLoader: URLLoader; Var xmlData: XML;



      Trinn 8: Variabler værende år Verdier

      Vår opphavsrettserklæring vil omfatte to datoer: året opphavsretten begynte og inneværende år. Vi har allerede avtalt å sette det første året i XML-filen. Verdien av inneværende år skal oppdateres automatisk hvert nytt år, og for dette trenger vi en forekomst av Date klassen, et usignert heltall å holde den numeriske verdien av inneværende år og også String objekt som vil produksjonen inneværende år i tekstfeltet. La oss erklære disse tre variablene nå:
      //Variablene å holde inneværende år verdi Var currentDate: Dato; Var currentYear: UINT; Var currentYearString: String;



      Trinn 9: Variabler Timer

      Vår opphavsrett vil ha to valgfrie animerte effekter: fade-in og slide-in. Våre animerte effekter vil være basert på Timer klassen, og for å holde animasjonene uavhengig av hverandre (slik at for eksempel hvis vi stoppe tidtakeren som styrer én animasjon vi ikke tilfeldigvis stoppe den andre animasjonen timer også) vi 'll trenger to separate variabler å holde de to forekomster av Timer klassen. La oss erklære dem nå:
      //Timer variabler Var slideInTimer: Timer; Var fadeInTimer: Timer;



      Trinn 10: Variabler lettelser

      Jeg antar at vi kunne bruke en Tween klasse eller en populær tweening motor som Caurina eller TweenLite å legge lettelser til vår slide-in animert effekt , men disse er for tung for en enkel effekt som vi trenger. I stedet vil vi skrive noen få linjer med kode for en svært grunnleggende lettelser effekt. For denne koden, vil vi trenge to variabler som skal inneholde desimaltall numeriske verdiene av den endelige X koordinere og avstanden fra vår opphavsrett modul nåværende posisjon til at X koordinere:
      //Variablene for lettelser Var xFinal: Number; Var xDistance: Number;



      Trinn 11: Variabler Relativ X og Y koordinater

      Vi ønsker å være i stand til å plassere våre opphavsrett enten nederst på scenen eller i bunnen av en MovieClip i vår Flash-prosjektet, til venstre eller høyre kant av scenen eller en MovieClip. For å oppnå den slags fleksibilitet, må vi gjøre selve X og Y-koordinatene fra rettighets modul avhengig av om vi plasserer det i forhold til scenen eller i forhold til en MovieClip, og om vi plasserer den til venstre eller til den rette. Vi trenger variabler for at:
      //Variablene for relativ X og Y-koordinatene Var relativeX: Number; Var relativey: Number; Var relativeZeroX: Number; Var xFinalRight: Number; Var xFinalLeft: nummer,



      Trinn 12: Variabler Reference MovieClip

      Vi trenger en variabel for å holde MovieClip forhold til hvor vi kan være lurt å plassere vår merknad om opphavsrett:
      //Variabelen for referanse MovieClip Var referenceClip: MovieClip;



      Trinn 13: VariablesThe Mask

      Vi vil bruke en kodet maske for å forbedre utseendet på vår slide-in animert effekt. La oss erklære en variabel for å holde vår maske. Denne variabelen kan tilhøre enten en Sprite eller MovieClip datatype. I mange tilfeller vil vi bruke Sprite datatype for vår maske, fordi masken ikke virkelig trenger en tidslinje, og har ingen tidslinje, er Sprite klasse lettere enn MovieClip klasse. Men, vi skal importere MovieClip klasse uansett, fordi den tilpassede klassen vi skaper vil bli skrevet som en underklasse av MovieClip klasse. Hvis vi tildelt vår maske variabelen til Sprite datatypen vil vi også nødt til å importere Sprite klasse, noe som vil gjøre vår kode ikke lettere, men tyngre.

      Så, vår maske variabel vil holde en forekomst av MovieClip klasse, og det er det (og jeg håper du ikke føler deg svimmel etter å ha lest den forrige avsnitt)
      //Masken variabel Var copyrightMask: MovieClip;



      Trinn 14:. Pakk Class

      Før vi pakke den klassen, la oss ta en titt på vår kode så langt:
      //THE variabeldeklarasjoner //XML laste variabler Var xmlLoader: URLLoader; Var xmlData: XML; //Variablene å holde inneværende år verdi Var currentDate: Dato; Var currentYear: UINT; Var currentYearString: String; //Textfield variabel Var txtCopyright: Textfield; //Tekstformat variabel Var tfCopyright: tekstformat; //Variablene å holde verdiene som sendes fra XML Var theFont: String; Var theFontSize: UINT; Var theFontColor: UINT; Var theFontBoldString: String; Var theFontBold: Boolean; Var theFontItalicString: String; Var theFontItalic: Boolean; Var theFontUnderlineString: String; Var theFontUnderline: Boolean; Var thelink: String; Var theTarget: String; Var initialYear: String; Var theHolder: String; Var theStatement: String; Var relativeTo: String; Var movieClipName: String; Var leftOrRight: String; Var theXOffset: int; Var theYOffset: int; Var slideInString: String; Var slideIn: Boolean; Var slideInSpeed: UINT; Var slideInSpeedIndex: UINT; Var fadeInString: String; Var fadeIn: Boolean; Var fadeInSpeed: UINT; Var fadeInSpeedIndex: Number; Var initialAlpha: Number; Var finalAlpha: Number; //Timer variabel Var theTimer: Timer; //Variablene for lettelser Var xFinal: Number; Var xDistance: Number; //Variablene for relativ X og Y-koordinatene Var relativeX: Number; Var relativey: Number; Var relativeZeroX: Number; Var xFinalRight: Number; Var xFinalLeft: Number; //Variabelen for referanse MovieClip Var referenceClip: MovieClip; //Masken variabel Var copyrightMask: MovieClip;

      De grupper av variabler trengte ikke å være plassert i akkurat den rekkefølgen. Det er programmerere som liker deres variabeldeklarasjoner å bli gruppert etter datatype, andre foretrekker alfabetisk rekkefølge. I denne opplæringen vi gruppere dem etter deres funksjonalitet, fordi det virker mest naturlig og logisk for denne søknaden.

      La oss nå legge til et par linjer med kode for å pakke alle disse variablene innenfor vår egendefinert klasse. Vi vil gjennomføre det som et dokument Class, som er en fin og enkel måte å bruke tilpassede klasser i Flash. Å pusse opp på temaet, sjekk ut dette dokumentet Class Quick Tips.

      Du kan finne følgende litt uvanlig, men det sparer tid. La oss begynne med å legge fire klammeparentes under
      våre variabler, en åpning seler og tre avsluttende de, som dette:
      {}}}

      La oss kommentere bukseseler:
      //konstruktør {} //Lukker konstruktør} //Lukker klassen} //Lukker pakken

      Nå la oss legge to-åpning klammeparentes ovenfor
      våre variabler, som dette: product: {{

      La oss kommentere disse to bukseseler, også:
      //PAKKEN {//KLASSEN {

      Vår klasse vil bli kalt CopyrightDocumentClass og det vil være underklasse av MovieClip klasse. Vi lagret filen i samme katalog der vi holder våre CopyrightTest.fla
      fil og vår CopyrightXML
      mappe. Å vite disse tingene, kan vi erklære pakken og klassen før den første og andre åpne seler, henholdsvis:
      //THE PACKAGEpackage {//KLASSEN public class CopyrightDocumentClass strekker MovieClip {

      Til slutt, vi skal definere konstruktør før åpningen seler som vi plassert under
      vår lange liste over variabler:
      //konstruktør offentlig funksjon CopyrightDocumentClass () {} //Lukker konstruktør} //Lukker klassen} //Lukker Pakken

      Vårt Actionscript-fil er nå en legitim definert klasse (selv om, teknisk, betyr det ikke ikke
      noe ennå), og vår kode så langt skal se slik ut:
      //THE PACKAGEpackage {//KLASSEN public class CopyrightDocumentClass strekker MovieClip {//THE variabeldeklarasjoner //XML laste variabler Var xmlLoader: URLLoader; Var xmlData: XML; //Variablene å holde inneværende år verdi Var currentDate: Dato; Var currentYear: UINT; Var currentYearString: String; //Textfield variabel Var txtCopyright: Textfield; //Tekstformat variabel Var tfCopyright: tekstformat; //Variablene å holde verdiene som sendes fra XML Var theFont: String; Var theFontSize: UINT; Var theFontColor: UINT; Var theFontBoldString: String; Var theFontBold: Boolean; Var theFontItalicString: String; Var theFontItalic: Boolean; Var theFontUnderlineString: String; Var theFontUnderline: Boolean; Var thelink: String; Var theTarget: String; Var initialYear: String; Var theHolder: String; Var theStatement: String; Var relativeTo: String; Var movieClipName: String; Var leftOrRight: String; Var theXOffset: int; Var theYOffset: int; Var slideInString: String; Var slideIn: Boolean; Var slideInSpeed: UINT; Var slideInSpeedIndex: UINT; Var fadeInString: String; Var fadeIn: Boolean; Var fadeInSpeed: UINT; Var fadeInSpeedIndex: UINT; Var initialAlpha: Number; Var finalAlpha: Number; //Timer variabel Var theTimer: Timer; //Variablene for lettelser Var xFinal: Number; Var xDistance: Number; //Variablene for relativ X og Y-koordinatene Var relativeX: Number; Var relativey: Number; Var relativeZeroX: Number; Var xFinalRight: Number; Var xFinalLeft: Number; //Variabelen for referanse MovieClip Var referenceClip: MovieClip; //Masken variabel Var copyrightMask: MovieClip; //Konstruktør offentlig funksjon CopyrightDocumentClass () {} //Lukker konstruktør} //Lukker klassen} //Lukker pakken



      Trinn 15: Import de super

      I vår egendefinert klasse Vi skal bruke de følgende datatyper som må være imported:


      Event

      TimerEvent

      URLLoader

      URLRequest

      Timer

      TextField

      TextFieldAutoSize

      tekstformat

      MovieClip

      StageAlign

      StageScaleMode

      La oss importere dem, rett under pakken erklæringen, som det er hensiktsmessig :
      pakke {//importere super import flash.events.Event; import flash.events.TimerEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.utils.Timer; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode;



      Trinn 16: Juster Stage og Set Scale Mode

      Vi ønsker vår opphavsrettserklæring å reposisjonere seg selv når en bruker endrer størrelsen på nettleservinduet, og vi ønsker noen movieclips på trinnet for å forbli den samme størrelse uavhengig av den aktuelle størrelsen og proporsjonene til scenen. For å gjøre disse to tingene er mulig, må vi justere på scenen og gjøre de visuelle objekter på scenen ikke-skalerbar.

      La oss legge til et par linjer med kode like nedenfor konstruktøren definisjon:
      //konstruktør offentlig funksjon CopyrightDocumentClass () {//StageAlign stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE;

      Disse to nye uttalelser fortelle Flash for å justere fasen til øverste venstre hjørne av spilleren og for å sette scaleMode av scenen til NO_SCALE konstant (som betyr at noen visuell objekt på scenen, inkludert Textfield som vil holde informasjonen opphavsrett passert skjema XML og vår referanse MovieClip, vil ikke bli skalering når nettleservinduet er endret. Hvis vi ønsket å gjøre dem skalerbar, ville vi måtte sette scenen skala modus til EXACT_FIT eller SHOW_ALL .)



      Trinn 17: Load XML

      La oss nå laste XML-data til vår Actionscript-fil. Legg til følgende kode under koden vi skrev i forrige trinn:
      //Load XML xmlLoader = new URLLoader (); xmlLoader.addEventListener (Event.COMPLETE, LoadXML); //Sti til XML-filen xmlLoader.load (ny URLRequest ("CopyrightXML /Copyright.xml")); //Definer funksjonen for lasting /parsing XML-funksjon LoadXML (e: Hendelses): void {xmlData = new XML (e.target.data); makeCopyright (xmlData); }

      At arrangementet lytteren /hendelseshåndterer par laster XML-data fra filen ligger på en gitt URL. For detaljer om hvordan det gjøres Jeg vil gjerne ta opp igjen til denne opplæringen på XML for Flash.

      Vi vil ikke legge noe mer kode i konstruktøren funksjon. Koden vi har skrevet så langt skal se slik ut:
      //THE PACKAGEpackage {//importere super import flash.events.Event; import flash.events.TimerEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.utils.Timer; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode; //KLASSEN public class CopyrightDocumentClass strekker MovieClip {//THE variabeldeklarasjoner //XML laste variabler Var xmlLoader: URLLoader; Var xmlData: XML; //Variablene å holde inneværende år verdi Var currentDate: Dato; Var currentYear: UINT; Var currentYearString: String; //Textfield variabel Var txtCopyright: Textfield; //Tekstformat variabel Var tfCopyright: tekstformat; //Variablene å holde verdiene som sendes fra XML Var theFont: String; Var theFontSize: UINT; Var theFontColor: UINT; Var theFontBoldString: String; Var theFontBold: Boolean; Var theFontItalicString: String; Var theFontItalic: Boolean; Var theFontUnderlineString: String; Var theFontUnderline: Boolean; Var thelink: String; Var theTarget: String; Var initialYear: String; Var theHolder: String; Var theStatement: String; Var relativeTo: String; Var movieClipName: String; Var leftOrRight: String; Var theXOffset: int; Var theYOffset: int; Var slideInString: String; Var slideIn: Boolean; Var slideInSpeed: UINT; Var slideInSpeedIndex: UINT; Var fadeInString: String; Var fadeIn: Boolean; Var fadeInSpeed: UINT; Var fadeInSpeedIndex: Number; Var initialAlpha: Number; Var finalAlpha: Number; //Timer variabler Var slideInTimer: Timer; Var fadeInTimer: Timer; //Variablene for lettelser Var xFinal: Number; Var xDistance: Number; //Variablene for relativ X og Y-koordinatene Var relativeX: Number; Var relativey: Number; Var relativeZeroX: Number; Var xFinalRight: Number; Var xFinalLeft: Number; //Variabelen for referanse MovieClip Var referenceClip: MovieClip; //Variabelen for masken Var copyrightMask: MovieClip; //Konstruktør offentlig funksjon CopyrightDocumentClass () {//StageAlign stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; //Load XML xmlLoader = new URLLoader (); xmlLoader.addEventListener (Event.COMPLETE, LoadXML); //Sti til XML-filen xmlLoader.load (ny URLRequest ("CopyrightXML /Copyright.xml")); //Definer funksjonen for lasting /parsing XML-funksjon LoadXML (e: Hendelses): void {xmlData = new XML (e.target.data); makeCopyright (xmlData); } //Lukker LoadXML} //Lukker konstruktør} //Lukker klassen} //Lukker pakken



      Trinn 18: Definer Main Funksjon

      Dette kan komme som et sjokk, men vi er ikke ferdige med variablene ennå. Vi har erklært dem, men de for tiden ikke holde noen verdier. Vi trenger å tilordne verdier til alle våre variabler. De fleste av disse verdiene bør komme fra vår XML-fil, vil noen andre skal beregnes med enkle matematiske operasjoner, og en verdi (inneværende år) vil bli tatt fra systemet av hvilken datamaskin kjører vår lille programmet.

      På grunn av utfordringen med å konvertere Strings gått fra XML til Booleans, vil verdiene må bli tildelt våre variabler i en bestemt rekkefølge, og grunnen til at ordren vil bli veldig tydelig i de neste trinnene i opplæringen.

      Også, fordi de fleste av våre verdier kommer til XML-filen, trenger vi å inneholde dem innenfor en funksjon som analyserer XML. Men for å organisere koden enda bedre kan vi faktisk inneholder alle
      våre variable verdier innenfor den funksjonen, og gjøre funksjon ikke bare analysere XML, men også utføre alle manipulasjoner med data holdes i variablene. Av utseendet til den, kvalifiserer som fungerer som den viktigste funksjonen av koden vår. Så la oss definere det nå. Det trenger ikke å returnere noen verdi, slik at vi kan indikere tomrommet datatype etter parentes. La oss nevne vår viktigste funksjon makeCopyright Hotell og legge den under konstruktøren i vår kode:
      } //Lukker konstruktøren //Hovedfunksjonen funksjon makeCopyright (): void {} //Lukker den viktigste funksjonen } //Lukker klassen} //Lukker pakken

      Dette ser bra ut, men det er en ting å gjøre før vi går videre til neste trinn. Mye av verdiene for ut variabler vil bli overlevert fra XML-filen, så vi trenger å referere at filen eller annen måte i vår funksjon. For å gjøre det, bør vi gå til vår funksjon et argument av XML-datatype. Vi kan kalle det argumentet noe vi ønsker, så la oss ikke belastningen vår fantasi for mye og bare kalle det copyright
      , og la oss sette det i parentes der det hører hjemme:
      } //Lukker konstruktør //Hovedfunksjonen funksjon makeCopyright (copyright: XML): void {} //Lukker den viktigste funksjonen} //Lukker klassen} //Lukker pakken

      For bedre å forstå hva vi nettopp gjorde, du kan tenke på det på denne måte: navnet på argumentet vi plassert i parentes ( copyright
      ) er rett og slett et kallenavn for vår XML-fil

      Vi har grunnlag for den viktigste funksjonen av koden vår nå og i. de neste trinnene vi skal skrive koden i vår viktigste funksjon



      Trinn 19:. Den Textfield Object

      La oss tildele verdi til txtCopyright variabel ved å ringe konstruktøren av