hurtig tip: hvordan ser en as3 fejlҳ

, hurtigt tip: hvordan ser en as3 fejlҳ,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet fikse insekter i flash. hurtig tip: hvordan ser en as3 fejlѠ, i denne hurtige tips, vil vi drøfte det forvirrende as3 fejl, 1203, "ingen konstruktøren har fundet", der dukker op uden provokation, og og desværre formuleret.vi vil undersøge det scenario, som det vil vise sig, og hvordan man laver det.,,,, trin 1: en obligatorisk, men noget ubrugeligt beskrivelse af fejl, 1203, først, her er det sprog, der anvendes af den fejl, 1203: ingen misligholdelse konstruktøren har fundet i basisklasse flash. display: bitmapdata, det er svært. at opdele det i engelsk.så lad os nu i et scenario, som producerer denne fejl.,, trin 2: en ødelagt projekt, du kan finde dette projekt i download - pakken i mappen "fanget".den består af følgende, som du kan bruge til at skabe dette projekt, hvis du foretrækker en praktisk tilgang):,, en fia ved navn, afsløret. ned.det er tom, men er knyttet til det dokument, der er beskrevet i næste klasse. et dokument, klasse, der hedder, taget. som.det rækker, sprite, og skaber blot et tilfælde af den klasse, der er beskrevet i næste, og tilføjer, at den fase. indholdet af klasse er som følger:, pakke (import - flash. udstilling. *; offentlige klasse busted udvider sprite {offentlige funktion busted() {var bmp: bitmap = nye bitmap (nye bustedbitmap()); addchild (bmp)}}}, bustedbitmap, klasse udvides, bitmapdata, og så bruger vi det til at brødføde en, bitmap, genstand, som tilsættes derefter scenen.,, en anden klasse fil ved navn, bustedbitmap.,.som nævnt tidligere, er det også, bitmapdata, og dens formål er at være en, bitmapdata, der automatisk forsynes med en perlin støj.dens indhold er:, pakke (import - flash. udstilling. *; offentlige klasse bustedbitmap udvider bitmapdata {offentlige funktion bustedbitmap() {perlinnoise (100, 100, 2, 1024, falske, urigtige, 7, sande)}}}, så i, bustedbitmap, konstruktøren, vi kalder, perlinnoise(), og derfor har vi automatisk har noget interessant i pixel - data, så vi kan se noget nu, hvor der på scenen.,, nu bare prøve den film.du vil få fejl, 1203, pegede på linje 4, bustedbitmap.,.og linje 4 er..., offentlig funktion bustedbitmap() {, trin 3: hvad er det så?så, hvad skete der?de store ting, man skal huske, er, at vi skriver en klasse, der anvendes af en anden klasse (, bitmapdata, i dette tilfælde).også huske på, at når en klasse er instantierede, konstruktøren hedder som en del af den "nye" proces. hvis du ikke skriver en konstruktør, actionscript vil indebære en til dig.det vil se ud, som om dette: offentlige funktion [nameofclass] () {}, hvor "[nameofclass]," vil matche navn i din klasse. på samme måde, som hvis du skriver en underklasse, og du skal ikke kalde, super(), så actionscript vil indebære, at ringe til dig.det vil se ud, som om dette: offentlige funktion [nameofsubclass] () (super(); //andre eksplicit kodeks i underklasse konstruktøren}, konstatere, at det, der sker i første linje, og det er simpelthen en opfordring til super, ingen argumenter. vi endelig tage fat om problemets rod.hvis din første udelader en udtrykkelig opfordring til, super, og din superclass er konstruktøren har krævet parametre, så er din implicit opfordring til super, ikke meddeler de krævede parametre.tror du, at et argument misforhold fejl kan fange det, men mener, at da der ikke er nogen kode skrevet til den uoverensstemmelse, actionscript kan kun beklage, at den manglende misligholdelse konstruktøren. i vores eksempel, bustedbitmap, udvide, bitmapdata,, der er defineret i den dokumentation, som det pågældende:, bitmapdata (bredde: int. højde: int, gennemsigtig: boolean = sandt, fillcolor: uint = 0xffffffff), den første af to parametre, er nødvendige, og vi er ikke forsyner dem.,, trin 4: det er så enkelt... er løsningen, når du forstår problemet, meget simpelt.du skal udtrykkeligt bede super konstruktør, i hvert fald hvis der er nødvendige parametre.med andre ord i vores bustedbitmap, klasse, det følgende fremhævet linje vil ordne problemet:, pakke (import - flash. udstilling. *; offentlige klasse bustedbitmap udvider bitmapdata {offentlige funktion bustedbitmap() {super (600, 400); perlinnoise (100, 100, 2, 1024, falske, urigtige, 7, sandt))), og det vil gøre det. som et lærerigt øjeblik, vil jeg gerne tilføje, at når forlængelse af en anden klasse, det er generelt en god idé at inddrage den udtrykkelige opfordring til, super.selv om der er ingen parametre på alle, der kræves, eller på anden måde (som i sprite eller movieclip,), en udtrykkelig opfordring kan erklære hensigt og kendskab til arten af de underklasse.mere praktisk, udtrykkeligt skal give dig en mulighed for at foretage nogle kode forud for opkald til, super,, som kan være nyttigt i visse situationer,.,, løntrin 5:, - - og det er endnu en fejl afmystificerede; den udfordring, for dette er, at den virkelige årsag til fejlen er begravet.når du er handy med en skovl, det er nemt nok. tak for at læse, og være klar til mere debugging - tips.



Previous:
Next Page: