, hurtigt tip: hvordan ser en as3 fejlѠ,,,,, 1,,,,,,,,,,,,,,,, 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ҳ, en meget almindelig actionscript fejl er fejl. 1120, "udefinerede ejendom" fejl.faktum er, at dette kan være den mest almindelige udarbejde tid fejl.årsagen hertil er meget enkel, men der er en række måder, hvorpå der kan induceres.vi tager en hurtig tur af nogle af de situationer, hvor du vil støde på denne fejl, og hvordan man ordner det.,,, den forklaring, lad os først få den overordnede idé om, hvad der sker med denne fejl.dette vil være vores teoretisk diskussion. vi får mere praktiske eksempler i den resterende del af tip. du finder denne fejl, der opstår, når man henviser en variabel (eller ejendomsret) i rækken af koden, men det variable eksisterer ikke.hvis du er vant til at skrive actionscript i manuskriptet panel, og ikke i undervisningen, vil ikke blive afskrækket af udtrykket "formuegoder". jeg vil ikke gå ind i en debat om, hvorfor vi har disse to tal, men det er tilstrækkeligt at sige, at i betragtning af den måde, actionscript udarbejder kode fra det panel, der variabel er faktisk en ejendom, hvis actionscript de ikke kan finde den ejendom, de har angivet, det flag, det med de fejl 1120.vil du se noget lignende:, 1120: adgang for udefinerede ejendom foo, hvor "foo," er navnet på din fornærmende ejendomsnavn. at løse dette normalt så let som at komme det navn.lad os tage et kig.,, f.eks. 1: variable erklæring, tager denne kode, f.eks. (du kan enten åbne ", ikke" eksempel projekt (dvs. projekt ved navn "savnet" i kilden til download) eller skabe dette projekt på din egen: skaber en nye flash dossier og et dokument, klasse, og det sætter denne kode i dokumentet klasse):, pakke (import - flash. udstilling. *; offentlige klasse mangler udvider sprite {offentlige funktion missing() (fu = "muh."}}}, udarbejde denne ned, og du vil få adgang, 1120: ubestemte ejendom foo, fejl, rettet mod linje 7. igen, fordi sandsynligvis er meget klar, du aldrig har erklæret, foo, ejendom, og så bruge det i linje 7, som, hvis deteksisterede allerede skaber problemer.løsningen er at erklære den variable.teknisk set, det kan være hvor som helst i passende omfang.hvert af de følgende er acceptable løsninger: erklærer det som en parameter til metoden: offentlige funktion mangler (fu: serie) (fu = "muh".;), erklærer den som en lokal variabel i metoden: offentlige funktion missing() (var - foo: string; foo = "muh".}, erklærer den som en instans ejendom i klasse:, pakke (import - flash. udstilling. *; offentlige klasse mangler udvider sprite (private var foo: string; offentlig funktion missing() (fu = "muh."}}}, løsningen afhænger af, hvad der er hensigtsmæssigt at hvad du prøver at gøre.det er ikke fælles om at erklære en metode parameter, og så bare sætte den i metoden, selv om der er tilfælde, hvor man vil påvirke de parameterværdier. hvad kan være interessant, er den måde, hvorpå flash vil søge en variabel af navn.for det første ser ud til lokale variabel af navn, foo,.hvis der ikke er angivet, så det ser på parametrene for det navn.hvis det ikke kan finde en, der ser det ud for en instans ejendom af samme navn.hvis ingen af disse er fundet, vil du se fejl 1120.,,. eksempel 2: en trykfejl, vores næste eksempel vil være noget lignende.igen, du kan bare åbne "fejl" projekt fra download, eller skabe et enkelt dokument ned med klasse og pasta /type følgende kode ind i klassen, eller bare læse sammen., pakke (import - flash. udstilling. *; offentlige klasse tastefejl udvider sprite (var - foo: string, offentlig funktion typo() {boo = "muh".}), der er ikke meget, der foregår her.idéen er at erklære en ejendom, foo, og derefter på konstruktøren der til værdien "muh".,.kød af denne er på strækninger, 5 og 9, der er fremhævet ovenfor.resten er bare dokument klasse boilerplate. igen, den fejl, sandsynligvis er tydelige.og naturligvis er det, når der kun er to linier til at bekymre dig om.det er klart, at vi har en fejl. vi skulle skrive:, foo - = "muh.", og hvis du skal lave den fejl, at du vil være i stand til at udarbejde ned uden 1120 fejl., mens denne er klart, vil jeg gerne fremsætte to bemærkninger.den første er, at det faktisk er en slåfejl fælles og sværere at udlede, når du har tusindvis af linjer kode i dit projekt.en god ide eller tekst, redaktør kan hjælpe jer med autocompletion eller andre former for fejl, kontrol, men som et sikkerhedsnet actionscript vil også hjælpe dig ved at producere den fejl 1120. den anden bemærkning er, at den fejl, der actionscript faktisk rapportering er, at de forsøger at henvise en ejendom, kaldet "bøh", men det er ikke til at finde.i dette eksempel, vi har skabt en fejl ved at indføre en skrivefejl i vores kodeks.men actionscript ved ikke, at du mente "foo,"; det forudsætter, at når du skriver "boo =" muh. "," det, du mente, boo, og advarer dig, når det ikke kan finde en ejendom i det navn. det er en temmelig subtil sondring, men det er nyttigt at huske på den egentlige årsag til fejl.,, f.eks. 3: om fase tilfælde, vores sidste eksempel drejer sig om flash ide i særdeleshed og kan sikkert ikke, hvis du ikke bruger flash cs3 /4 /5, og i stedet anvende flash konstruktør med flex - ramme.oprettelsen af den fejl vil tage et par simple trin. kan du finde de problematiske projekt i, trin instans, foldet til download - pakken.eller du kan genskabe det ved at følge disse trin:, og begynde med en ny flash fil og dertil knyttede dokument klasse., flash - fil, udarbejde en form for lidt og gør det til et symbol, udvælge symbolet eksempel på scenen og åbne egenskaber panel, og navnet instance_mc, f.eks.., stadig i glimt, vælge, fil > offentliggøre miljøer, så vælg, flash, tab., klik på indstillinger, knap,... næste til "script:" pop - op - menuen. hvor er siger, fase: automatisk erklærer fase tilfælde, sørg for at den afkrydsningsfelt, fn 's, der er udvalgt.,, tilføje følgende kode til det dokument, klasse:, pakke (import - flash. udstilling. *; offentlige klasse stageinstance udvider sprite {offentlige funktion stageinstance() {instance_mc.rotation = 45}}}, på dette punkt, så løb den film.du vil igen få 1120 fejl. som du måske være i stand til at formode, at slukke "automatisk erklærer fase tilfælde" havde meget at gøre med den generation af fejl.det er en mulighed, der er ved misligholdelse tændt, så ville du sikkert har en grund til at - - og være klar over - at slukke det. hvad er, hvis ret indlysende, men jeg vil gerne tilføje mine to cent.når du har et dokument - klasse (eller en sædvane i klasse i forbindelse med et symbol i biblioteket), at klasse udvides, sprite eller movieclip,.den typiske regler for oprettelse af variabler og egenskaber anvendelse som enhver anden klasse, men fordi du har en visuel grænseflade til dette formål - flash ide - - du kan være underforstået, at egenskaber i form af, at flere symboler på scenen, og at give dem navne, hvis f.eks. "automatisk erklærer fase tilfælde" er på, så - går gennem genstande lægges til den scene gennem ide og indsæt ejendom erklæringer til de relevante klasser for hvert symbol instans med et navn. hvis det er, så blink ikke vil gøre noget med eksempler på scenen. for at undgå de fejl, du bare kan vende denne mulighed tilbage.alternativt kan du manuelt, erklærer den fase tilfælde.hvis vi i vores dokument, klasse, ser således ud:, pakke (import - flash. udstilling. *; offentlige klasse stageinstance udvider sprite {offentlige var instance_mc: movieclip; offentlig funktion stageinstance() {instance_mc.rotation = 45}}}, ville det også undgå de fejl, fordi den ejendom stadig er erklæret; det har ikke erklæret automatisk af flash professionelle. bemærk, at hvis adgangen transformer ikke er offentlige, vil du få en runtime fejl.jeg vil ikke gå i detaljer om denne fejl; det vil blive til en hurtig tip. hvorfor ville du nogensinde ønsker at blive det i første omgang?jeg tror, de grunde, har at gøre med at bevæge sig ud over flash som et udviklingsværktøj.hvis du bruger flash bygmester til kode, eller asdoc eller integrere flash indhold inden for flex - projektet, ville du forstå konsekvenserne af, at den mulighed.hvis du gør det, er du nødt til at så erklære egenskaber manuelt.omvendt er det også rigtigt: hvis du gør det, du er nødt til, ikke - manuelt erklærer de egenskaber, hvilket, hvis du løber din klasse filer igennem asdoc, det vil sandsynligvis finde en henvisning til en fase, men ikke sin erklæring, og de vil modtage fejl 1120.at option på en bekvemmelighed, men at slukke det tvinger dig til at skrive "rene" kode, der er mere bærbare og selvstændig., erklærer jeg det hurtigt tip, som mange fejl, fejl 1120 er simpel på hjerte, og nemme at lave, når man ved, hvad man skal lede efter.tak fordi du læste, og bliv hængende for mere debugging - hurtige tips.,