Avatar billede basicq Nybegynder
24. januar 2004 - 13:27 Der er 35 kommentarer og
2 løsninger

Gør Mc's klikbare dynamisk

Jeg har 245 stk. mc som hver repræsenter et land i verden, hver mc er knyttet til en ip adresse. Det vil sige, når en bruger kommer ind på min side, så vil det land han kommer fra få farven gul.

Jeg registrer så de lande jeg har haft besøg fra i min db. Jeg har en function i flash som gør at man kan se de forskellige lande som har besøgt min side. Den function kalder jeg "markCountrys" og den giver landende farven grøn.

Det jeg gerne vil have hjælp til er at gøre de lande som bliver grønne til knapper/links, altså så de opfører sig som en "button".

Jeg kunne manuelt gøre det på hver mc men det gider jeg ikke, hvis det kan lade sig gøre dynamisk. Jeg har prøvet på følgende måde.

_root.allCountrys[countryArr[i]].onClick == function()
{
trace(allCountrys[countryArr[i]]);
}

Men uden held.

Håber nogen kan hjælpe.
Avatar billede mat Nybegynder
24. januar 2004 - 14:11 #1
det hedder onRelease eller onPress i flash - det kan være det hjælper lidt? :)

Og du skal ikke have to lighedstegn når du assigner en funktion til en event.

mvh mat
Avatar billede kragekjaer Praktikant
24. januar 2004 - 15:03 #2
mat, jeg tror jeg fik en glimt af onClick i mx 2004, er dog ikke sikker
Avatar billede mat Nybegynder
24. januar 2004 - 15:34 #3
button komponentet har en on (click) (eller .click), men jeg tror ikke der er en decideret onClick til button eller movieclip symboler.
Avatar billede barklund Nybegynder
24. januar 2004 - 18:24 #4
Det er helt rigtigt - nogle komponenter har en onClick men det har det sædvanlige ActionScript objekter, Button og Movieclip, ikke...
Avatar billede pyroman Nybegynder
25. januar 2004 - 11:36 #5
_root.allCountrys[countryArr[i]].onPress == function(){
  trace(allCountrys[countryArr[i]]);
}

Præcis som mat skrev - dette burde virke
Avatar billede pyroman Nybegynder
25. januar 2004 - 11:36 #6
hov

_root.allCountrys[countryArr[i]].onPress = function(){
  trace(allCountrys[countryArr[i]]);
}
Avatar billede basicq Nybegynder
25. januar 2004 - 20:47 #7
Hvis jeg gør sådan her så får den ikke allcountrys[countryArr[i]] med ind i functionen. Altså virker min trace(allCountrys[countryArr[i]]); ikke men hvis jeg kan får den til at trace rigtigt der, så tror jeg det virker. For nu kan man vælge alle lande/mc's.

Så hvordan får jeg nu allCountrys[countryArr[i]] med ind i functionen når jeg ikke må declare i functionen på den måde.

allVisitCountrys = "Denmark#Germany";
allCounts = "2";
countryArr = allVisitCountrys.split("#");
for(i=0; i<=(allCounts-1); i++)
{
    _root.allCountrys[countryArr[i]].onPress = function(){
    trace(allCountrys[countryArr[i]]);
    }
}
Avatar billede pyroman Nybegynder
25. januar 2004 - 21:32 #8
Dumme mig.. en lille fejl i koden:
(Hvad er det du vil udskrive med trace?? - har bare sat den til at udskrive selve mc'et som objekt...)


allVisitCountrys = "Denmark#Germany";
allCounts = "2";
countryArr = allVisitCountrys.split("#");
for(i=0; i<=(allCounts-1); i++){
    _root.allCountrys[countryArr[i]].onPress = function(){
        trace(this);
    }
}
Avatar billede basicq Nybegynder
25. januar 2004 - 21:37 #9
Jeg vil gerne have at det kun er muligt at trykke på landene Denmark og Germany i det her tilfælde. Men når jeg ikke kan trace(allCountrys[countryArr[i]]) inde i functionen så kan jeg heller ikke trykke på Denmark eller Germany.
Avatar billede basicq Nybegynder
25. januar 2004 - 21:40 #10
Med det kode du lige har skrevet så tracer den godt nok, men kun Germany, men det er lige meget hvilket land jeg trykker på så finder den Germany.
Avatar billede mat Nybegynder
25. januar 2004 - 21:50 #11
Det er vel logisk nok? Hvis du vil lave et komplet gennemløb af et array i din funktion er du nødt til at have en for løkke derinde.
Avatar billede pyroman Nybegynder
25. januar 2004 - 21:52 #12
allVisitCountrys = "Denmark#Germany";
countryArr = allVisitCountrys.split("#");
for(i=0; i<countryArr.length; i++){
    _root.allCountrys[countryArr[i]].onPress = function(){
        trace(this);
    }
}
stop();

Med dette virker det i hvert fald fint hos mig!!

Bare for at sige det: "country" i flertal hedder "countries" - hehe ;)
Avatar billede pyroman Nybegynder
25. januar 2004 - 21:54 #13
fejlen lå i dette:

allCounts = "2";

dette er en streng - du skal bruge en numerisk variabel - eller kan du ikke trække en fra som her (allCounts-1)!!
Avatar billede basicq Nybegynder
25. januar 2004 - 21:59 #14
hmm det virker ikke hos mig, det er ligemeget hvor jeg trykker så finder den kun Germany.
Avatar billede basicq Nybegynder
25. januar 2004 - 22:00 #15
altså det er ligemeget hvor jeg trykker på Mc "allCountrys" så finder den kun Germany
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:09 #16
Så må du have lavet en eller anden fejl et sted... evt under navngivningen af MC'erne. Er du sikker på at "allCountrys" hedder "allCountrys" og at dine to lande hedder "Denmark" og "Germany"??
Ellers kan du uploade din fil?
Avatar billede basicq Nybegynder
25. januar 2004 - 22:13 #17
Jeg det er jeg 100 på for både Denmark og Germany bliver grønne så derfor er jeg 100% sikker.
Avatar billede basicq Nybegynder
25. januar 2004 - 22:14 #18
Men nu her jeg vist lige fundet fejlen. Prøver lige at formuler mig tydeligt lige et øjeblik.
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:15 #19
kan du uploade??
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:15 #20
eller sende til filip@desi-dev.dk
Avatar billede basicq Nybegynder
25. januar 2004 - 22:21 #21
Jeg er blevet bange for at det ikke kan lade sig gøre pga. den måde mit verdens kort er bygget op på.

Hele verden kortet måler 1024*540 og hver land måler 1024*540 men det er kun selve landet som er synligt altså alt andet rundt om fx. Denmark er transparant. Og da landende ligger i layers og Germany ligger i et layer over Denmark vil det jo altid være Germany som man trykker på.

Så hvis jeg skal kunne lave det så skal man kunne skelne mellem transparant og ikke transparant. Og kan man det?
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:25 #22
nej - ikke på den måde - men hvorfor det store areal som er transperant??
Ellers kan du bare smide et lille mc med landet grafik ind i lande-mc'et.
Avatar billede basicq Nybegynder
25. januar 2004 - 22:28 #23
Grunden til det store areal var et valg da jeg skulle bygge verden op i lande, på den måde var jeg fri for at sidde og placer hver enkelt land istedet kunne jeg bare placer selve billedet i 0,0.
Avatar billede basicq Nybegynder
25. januar 2004 - 22:30 #24
Jeg tror jeg finder på noget andet, jeg havde ellers i tankerne at man skulle kunne klikke på det land man kom fra og poste en lille besked (tagwall for hver land). Men jeg finder bare på noget andet.
Avatar billede basicq Nybegynder
25. januar 2004 - 22:31 #25
Så mange besøgende har jeg heller ikke.
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:32 #26
det kunne du da have gjort alligevel... du kan jo godt have i mc hvor grafikken ligger i (234,692) og i _root ligger mc'et i 0,0!!! så det lyder da lidt åndsvagt...
Avatar billede basicq Nybegynder
25. januar 2004 - 22:33 #27
Men jeg takker for hjælpen, så hvis du poster et svar pyroman, så skal du få nogle point for ulejligheden, jeg har jo lært lidt nyt.

Takker/ og hvis du undre dig over hvad jeg laver, så kan du jo sige til hvis du vil se det.
Avatar billede basicq Nybegynder
25. januar 2004 - 22:34 #28
Hmmm ja det kunne jeg jo måske godt have gjort (tis) men gjort er gjort jeg gider ikke lave det om.....
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:37 #29
du kan vel bare slette det transperante!! Giv nu ikke op! :) Jeg har 8 timer til jeg skal op og i skole...
Avatar billede basicq Nybegynder
25. januar 2004 - 22:40 #30
Jeg ser lidt på det.... :-)
Avatar billede basicq Nybegynder
25. januar 2004 - 22:43 #31
Hvis jeg kan fjerne det transperante i flash så vil jeg måske gøre det. Kan man det?
Avatar billede basicq Nybegynder
25. januar 2004 - 22:47 #32
Nej det gider jeg ikke har fundet på noget der er mere cool og sjovere for dem der skal bruger det. Du må poste et svar nu jeg orker ikke at lave hver enkelt land om. Det vil heller ikke komme til at virke aligevel da min grafik bliver kvadradisk lige meget hvad så støder to lande op mod hinanden så overlapper de aligevel.... Men ellers tak for støtten, men jeg gider ikke.... Du skal også til at komme i seng hvis du skal op i skole.... POST et svar og du vil blive belønnet...
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:47 #33
årh er det billeder??
ÆV - nej så er det trist arbejde i hvert falde... Du kan "trace" dine billeder - altså lave dem om til vector grafik - men så bliver dine billeder ikke altid lige gode - og det er surt og krævende arbejde - især med 245 lande!!
Avatar billede basicq Nybegynder
25. januar 2004 - 22:52 #34
Klart men kom nu med det svar så jeg kan komme i seng. :-)
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:53 #35
Hehe - godnat! :)
Avatar billede basicq Nybegynder
25. januar 2004 - 22:54 #36
Hmm hvor meget skal du nu have...
Avatar billede pyroman Nybegynder
25. januar 2004 - 22:57 #37
Det' fint 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