Avatar billede maqhem Nybegynder
11. oktober 2007 - 20:49 Der er 6 kommentarer og
1 løsning

Package i ActionScript 3.0

Hvordan skal koden for package se ud? Jeg kan ikke få det til at virke. Når jeg har følgende filer, fungerer det fint:

SampleCode.as
package {
    public class SampleCode {
        public function SampleCode() {
            trace("SampleCode constructor");
        }
    }
}

Test.fla
import SampleCode;
var t:SampleCode = new SampleCode();

Men for det første kan jeg ikke navngive min package, for det andet kan jeg ikke oprette flere klasser i samme package og for det tredje brokker den sig konstant over navnet på min package, når jeg har navngivet den.
Hvad skal jeg gøre? Det omhandler selvsagt Flash CS3 (AS3).
Avatar billede barklund Nybegynder
12. oktober 2007 - 09:29 #1
Du skal selvfølgelig stadig bruge mapper svarende til pakken/pakkerne, så vil du have en pakke som:

package org.maghem.myproject {
    public class SampleCode {
        public function SampleCode() {
            trace("SampleCode constructor");
        }
    }
}

Så skal filen SampleCode ligge i org/maghem/myproject/SampleCode.as

Og andre klasser i samme package skal selvfølgelig angive samme package i klassedefinitionen samt ligge i samme mappe.
Avatar billede maqhem Nybegynder
14. oktober 2007 - 21:26 #2
Hvordan deklarerer jeg flere klasser i samme fil? Det har jeg set flere steder på nettet, at man kan, men så får jeg bare beskeden:

5006: An ActionScript file can not have more than one externally visible definition: Maqhem.Class1, Maqhem.Class2

Filen Maqhem/Class1.as ser således ud:

package Maqhem {
    import flash.display.MovieClip;
    public class Class1 extends MovieClip {
        public function Class1() {
            trace("Class1 constructor");
        }
    }
    public class Class2 {
        public function Class2 () {
            trace("Class2 constructor");
        }
    }
}

Og dertil er et movieclip linket til klassen Maqhem.Class1 og baseklassen flash.display.MovieClip.
Avatar billede barklund Nybegynder
14. oktober 2007 - 22:36 #3
Du kan ikke have mere end én klasse i samme fil, som er offentligt tilgængelig. Men du kan godt have flere, bare alle på nær én er private:

package Maqhem {
    import flash.display.MovieClip;
    public class Class1 extends MovieClip {
        public function Class1() {
            trace("Class1 constructor");
        }
    }
    private class Class2 {
        public function Class2 () {
            trace("Class2 constructor");
        }
    }
}

:)

--
Barklund
Avatar billede maqhem Nybegynder
14. oktober 2007 - 22:39 #4
Super. Jeg takker igen for fantastisk svar fra din side af. Drop et svar!
Avatar billede maqhem Nybegynder
14. oktober 2007 - 22:40 #5
Hov det er længe siden, jeg sidst har benyttet eksperten.dk. Jeg havde glemt, det er dig, der skal smide et svar.
Avatar billede barklund Nybegynder
14. oktober 2007 - 22:45 #6
Hehe, okay :)
Avatar billede barklund Nybegynder
14. oktober 2007 - 22:48 #7
Tak :)
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