Avatar billede Slettet bruger
28. august 2007 - 21:48 Der er 10 kommentarer og
1 løsning

CS3: Flere metoder med samme navn?

Hej eksperter!

I C# kan man oprette flere "udgaver" af en metode:

public void Test(int parameter0)
{
}
public void Test(int parameter0, int parameter1)
{
}

Det svarer i AS3 til:

public function Test(parameter0:int):Void {
}
public function Test(parameter0:int, parameter1:int):Void {
}

Men det virker ikke - Flash takler det som et forsøg på at oprette samme metode to gange. Men hvordan gøres det så (hvis det overhovedet er muligt)?
Avatar billede barklund Nybegynder
28. august 2007 - 22:07 #1
Det hedder "method overloading", og det kan ikke lade sig gøre i Flash. Desværre :)
Avatar billede Slettet bruger
28. august 2007 - 22:59 #2
Noes! Tak for hjælpen... Ved du, om der er en årsag til, at Adobe ikke har integreret en løsningsmulighed?
Avatar billede Slettet bruger
28. august 2007 - 23:00 #3
(Bare smid et svar... Hvis du samler på points. Kan jeg ikke huske. Suk.)
Avatar billede Slettet bruger
28. august 2007 - 23:08 #4
Hov, og lige en ting til, når nu jeg har åbnet et spørgsmål...
Hvordan opretter jeg "dynamisk" en variabel undet et objekt?
Altså noget i retning af:

var noget:String = new String("enstring");
EtObjekt[noget] = new String("D'oh, hvorfor virker det her ikke?");
trace(EtObjekt.enstring); // D'oh, hvorfor virker det her ikke?

Hvad skal det være korrekt?
Avatar billede barklund Nybegynder
29. august 2007 - 08:25 #5
Altså, det kan man jo i AS2 kun for "dynamiske" klasser - altså LoadVars, Object, MovieClip og den slags, hvor alle egenskabsnavne accepteres. For andre klasser kan man ikke - heller ikke string. Man har dog altid kunnet snyde og bruge "array element access"-operatoren:

var etObject:Object = new Object();
var noget:String = "enstring";
etObjekt[noget] = "D'oh, det virker i AS2";
trace(etObjekt.enstring); // D'oh, det virker i AS2

Mens man ikke har kunnet gøre det på ikke-dynamiske objekter, som for eksempel XML:

var etObject:XML= new XML();
var noget:String = "enstring";
etObjekt[noget] = "D'oh, det virker heller ikke i AS2";
trace(etObjekt.enstring); // D'oh, det virker heller ikke i AS2

Så vidt jeg forstår AS3, så er situationen den samme. Altså at man på en klasse kan angive den som "public dynamic class Foo" og så kan alle egenskabsnavne bruges.

:)

--
Morten Barklund
Avatar billede barklund Nybegynder
29. august 2007 - 08:25 #6
Og et svar :)
Avatar billede Slettet bruger
29. august 2007 - 10:19 #7
D'ohes... Jeg tror bare, jeg går tilbage til C# og begynder at lege med 2d-grafik.
Tak for hjælpen!
Avatar billede barklund Nybegynder
29. august 2007 - 10:24 #8
Stakkel :)
Avatar billede Slettet bruger
29. august 2007 - 18:37 #9
Smag og behag... Jeg fristes til at sige i lige måde :P
Men ja, Flash er langt mere ligetil og effektivt til formålet.
Avatar billede barklund Nybegynder
30. august 2007 - 10:15 #10
Flash er god til sine formål, C# er jo til noget helt andet, Java til noget tredje, og Python, PHP, Perl, SML, JavaScript og tusind andre sprog, som jeg bruger i mere eller mindre grad til noget andet igen :)

Så jeg er bestemt ikke fanatisk omkring valg af sprog - men jeg finder Flash værende et af de mest tilgængelige og hurtige at komme langt i når det kommer til layout og design. :)
Avatar billede Slettet bruger
30. august 2007 - 16:14 #11
Enig ;)
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