Avatar billede Slettet bruger
09. september 2005 - 20:58 Der er 1 løsning

Actionscript - iterativ oprettelse af hændelsesforløb

Hej eksperter.

Jeg har en scene, rummende en baggrund + nogle genstande (små, tegnede objekter). Disse ønsker jeg at tilknytte en række hændelser. Disse er som følger:

- De skal kunne trækkes rundt på scenen
- Information om den pågældende genstand skal vises

Hvert objekt er blevet navngivet individuelt. P.t. rummer scenen 4 objekter, der som instance hedder vaseline_mc, spray_mc, sminke_mc og halskaede_mc.

Et screendump kan ses på http://www.vandret.dk/diverse/ho.jpg - og det er lidt vanskelig for mig at forklare problemet på forståeligt dansk, men jeg prøver:

Mine scripts ligger som eksternt tilknyttede .as filer. Følgende kode er et uddrag:


------------------ Kode starter her -----------------
var ting = new Array("vaseline_mc", "spray_mc", "sminke_mc", "halskaede_mc");
var tingsexappeal = new Array(100, 120, 170, 90);
var tingpris = new Array(250, 240, 340, 180);

// Vi vil også ha' en label over vores gear....
function shopstatvis(i) {
    this.shopstat_mc.onEnterFrame = function() { // Sørg for, at vores statusramme - som hedder shopstat_mc - følger musepilen
        this._x = _xmouse;
        this._y = _ymouse;
    }
    this.shopstat_mc.gotoAndStop(2); // Vis statusboksen
    this.shopstat_mc.tingsexappealdynamic.text = tingsexappeal[i]; // Indsæt informationer jf. de definerede arrays
    this.shopstat_mc.tingprisdynamic.text = tingpris[i]+",-";
}

function shopstatgem(i) {
    this.shopstat_mc.gotoAndStop(1);
}

for (i=0; i<ting.length; i++) {
    this[ting[i]].onPress = function() {
        startDrag(this, false);
    }

    this[ting[i]].onRelease = function() {
        stopDrag();
    }
   
    this[ting[i]].onRollOver = function() {
        shopstatvis(i);
    }
   
    this[ting[i]].onRollOut = function() {
        shopstatgem(i);
    }
   
}
----------------------- Kode slutter her ---------------


På sigt kommer hylderne (jf. linket) til at rumme en stribe varer. MIT PROBLEM er, på en "kodelinie-effektiv" måde, at tildele hver enkelt vare samme egenskaber - men samtidig vide, hvilken vare, man f.eks. klikker på eller har musemarkøren over.

F.eks.: Flyttes musemarkøren over sprayflasken, skal hhv. sexappeal og pris vises i en kasse. For at dette kan se, er jeg nødt til at vide HVILKEN ting jeg har "mouset over". Dvs. en variabel bliver sat lig et tal, som så kan fungere som indexering for mine arrays.

Jeg vil godt kunne få det til at virke, hvis jeg satte hændelser (mouseover, -out, press og release) for objekterne og således tilknytte dem en række egenskaber - men metoden fylder blot ufattelig mange linier med store dele gentagen kode.
Avatar billede Slettet bruger
16. september 2005 - 08:47 #1
Den er også lidt vanskelig. Nå, jeg er nødt til at kode det på "slave-faconen", så...
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