Avatar billede donpedrodelavega Nybegynder
04. januar 2005 - 16:23 Der er 7 kommentarer og
1 løsning

packages / namespaces

Hvordan er den korrekte angivelse af packages i .as filer ?

For alle nedenstaaende eksempler er gaeldende at filerne ligger i et mappehieraki der matcher deres pakkeplacering.

A1
class pakke.indrePakke.klasse extends pakke.indrePakke.abstraktKlasseSammePakke {

}

A2
class pakke.indrePakke.klasse extends abstraktKlasseSammePakke {

}

A3
class klasse extends abstraktKlasseSammePakke {

}

Hvordan tilgaar jeg klasserne efterfoelgende ?

B1
imports pakke.indrePakke.* eller imports pakke.indrePakke.klasse
var class : klasse;

B2
var class : pakke.indrePakke.klasse
Avatar billede donpedrodelavega Nybegynder
04. januar 2005 - 16:35 #1
den bliver bare ved med at give saadan en fejl her:

**Error** Y:\Barcu\Flash Client\5.1\pakke\indrePakke\klasse.as: Line 1: The class being compiled, 'pakke.indrePakke.abstraktKlasseSammePakke', does not match the class that was imported, 'abstraktKlasseSammePakke'.
    class pakke.indrePakke.klasse extends abstraktKlasseSammePakke

Total ActionScript Errors: 1     Reported Errors: 1
Avatar billede barklund Nybegynder
04. januar 2005 - 17:14 #2
Den "rigtige" måde ville være:

import pakke.indrePakke.abstraktKlasseSammePakke;
class pakke.indrePakke.klasse extends abstraktKlasseSammePakke {}

Du kan dog ikke compile filen selvstændigt, da den jo ligger, hvor den nu engang ligger og ikke kan kigge ind i de to mapper, da den lige skal to mapper ud først.

Dette kan omgås ved, at du udenfor de to mapper laver en fla fil, der inkludere den første klasse som:

import pakke.indrePakke.klasse;
var testVar:klasse = new klasse();

Og så kun kompilere denne fil og ikke dine as-filer selvstændigt - kompilering af denne vil nemlig sikre kompilering af as-filer.

Du kan også i din classpath som sættes et eller andet sted i Edit -> Preferences eller deromkring til at være "roden" af dit projekt - altså i dit tilfælde:

Y:\Barcu\Flash Client\5.1\

Og så burde det virke. Mht. import, så er det ikke nødvendigt. Du kan godt skrive:

class pakke.indrePakke.klasse extends pakke.indrePakke.abstraktKlasseSammePakke {}

Og instantiere som:

var testVar:pakke.indrePakke.klasse = new pakke.indrePakke.klasse();

Men at importere er lidt pænere :)

--
Morten Barklund
Avatar billede donpedrodelavega Nybegynder
04. januar 2005 - 18:03 #3
det virkede sq at precompile klasserne een af gangen med en dertil indrettet seperat .fla...

hold da helt op noget krejeleri... hvordan kan man "mere rigtigt" precompile .as klasser / filer ?

/ DP
Avatar billede barklund Nybegynder
04. januar 2005 - 18:34 #4
Din hoved-FLA fil, som du i forvejen skla bruge inkluderer vel de klasser, som skal compiles? Så kan du bare compile den, og den sørger selv for at compile alle de klasser, der er behov for. For eksempel hvis du i ovenstående compiler klasse, så da den inkluderer abstraktKlasseSammePakke vil denne også blive compilet. Det sker skam helt af sig selv, hvis du bare inkluderer de pakker, du har brug for.
Avatar billede donpedrodelavega Nybegynder
04. januar 2005 - 19:14 #5
jeg gjorde praecist som du beskriver, men tidligere postede kommentar var jo altsaa den fejl der blev ved at dukke op alligevel...

anyways... har jo faaet det svar jeg havde brug for så hvis du smider et svar så får du point... :)

/ DP
Avatar billede barklund Nybegynder
04. januar 2005 - 20:34 #6
Well, håber du får det til at virke på en enkelt måde - det skal jo ikke være møgbesværligt at have det lettere :)

classpath metoden er den, som de fleste nok lige umiddelbart benytter sig af :)

--
Morten Barklund
Avatar billede donpedrodelavega Nybegynder
05. august 2005 - 22:59 #7
barklund >> hvis du lige smider et svar får du points...

bedre sent end aldrig... spørgsmålet er iøvrigt ikke længere interessant - jeg er way beyond nu :)

/ DP
Avatar billede barklund Nybegynder
05. august 2005 - 23:40 #8
Hehe, helt fint :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester