Avatar billede searchjob Nybegynder
12. juni 2006 - 23:49 Der er 33 kommentarer og
1 løsning

zIndex også kaldt swapDepths - hjælp mig

Hejsa - hvad gør jeg forkert i?

function Moved(brugernavn,xAkse,yAkse)
{
   
    test["user" + brugernavn]._y = yAkse;
    test["user" + brugernavn]._x = xAkse;
    test["user" + brugernavn].swapDepths(yAkse + 1);
}

Jeg vil have zIndex på følgende movieclip til at blive øverst når man trykker til "yAkse" så skal zIndex på  test["user" + brugernavn] flytter sig til yAkse + 1

Hvad gør jeg forkert? - Den gider ikke fikse zIndex
Avatar billede searchjob Nybegynder
13. juni 2006 - 01:09 #1
Kan man lave zIndex med flash? Har nemlig et problem. Når brugere er inde, er de placeret i deres mc's.

De er i "lag".
Brugeren nummer 1 har lag 1
Brugeren nummer 2 har lag 2

Når bruger 2 er over bruger nummer et's lag, så skal bruger 2's "Zindex" være OVER bruger nummer et's lag

Og når bruger 2 er UNDER bruger nummer et's lag, skal zIndex være lavere.

Hvordan gøres dette?
Avatar billede maqhem Nybegynder
13. juni 2006 - 07:55 #2
Lige én ting på det rene:

Skal mc'et flyttes øverst, eller skal der stadig være noget, der ligger ovenover?

Skal det blot flyttes øverst skal du bruge denne:

test["user" + brugernavn].swapDepths(this.getNextHighestDepth());

Hvis du vil have ovenstående til at virke (hvilket kun sker maksimalt én gang!), så skal du gøre som følgende i stedet for:

test["user" + brugernavn].swapDepths(yAkse.getDepth() + 1);

Håber, du får det til at virke!
Avatar billede searchjob Nybegynder
13. juni 2006 - 13:02 #3
Det er ligesom nogle 'mennesker' der står på nogle forskellige x- og y-akser.

Når bruger nummer 1 står på x: 200 og y: 100
Og bruger nummer 2 står på x: 150 og y: 100

Så skal bruger nummer 1 selfølgelige have et zIndex på mere end bruger nummer 2.

Hvis så bruger nummer 2 flytter sine felter fra x: 150 til x: 250 og y: 100
Så skal bruger nummer 2 have det støre zIndex.

PS: Der er mange 'mennesker' med x- og y- kordinater inde.
Avatar billede maqhem Nybegynder
13. juni 2006 - 13:13 #4
Så ham længst ude af x-aksen skal ligge øverst? Og sådan forsætter det nedad?
Avatar billede searchjob Nybegynder
13. juni 2006 - 16:09 #5
Jep!!
Avatar billede searchjob Nybegynder
13. juni 2006 - 16:09 #6
Nej y-aksen!
Hvis y-aksen er 203 skal zIndexet fx være 203
Avatar billede searchjob Nybegynder
13. juni 2006 - 16:10 #7
Længst nede af y-aksen
hvis man så går opad af y-aksen skal den selvfølgelig ikke stige, men minuse
Avatar billede searchjob Nybegynder
14. juni 2006 - 00:58 #8
Forstod du?
Avatar billede maqhem Nybegynder
14. juni 2006 - 09:53 #9
"hvis man så går opad af y-aksen skal den selvfølgelig ikke stige, men minuse"
forstod jeg ikke helt, men er det ikke bare af hensyn til, at Flash er bygget op omvendt med Origon oppe til venstre?
Avatar billede searchjob Nybegynder
14. juni 2006 - 10:09 #10
Du skriver tideligere "Så ham længst ude af x-aksen skal ligge øverst? Og sådan forsætter det nedad?"

Både ja og nej - ikke x-aksen med y-aksen
Avatar billede maqhem Nybegynder
14. juni 2006 - 11:46 #11
Okay. Så der er slet ikke nogen x-akse? Disse 'mennesker', er de KUN i én linie?
For så er det ikke særlig svært skulle jeg da mene.
Avatar billede maqhem Nybegynder
14. juni 2006 - 12:06 #12
Du burde nu kunne slette følgende linie:

test["user" + brugernavn].swapDepths(yAkse + 1);

og skrive følgende et sepereret sted:

onEnterFrame = function(){
    for(i = 0; i < ANTAL_MENNESKER; i++){
        test["user" + i].swapDepths(Math.abs(_root._width - test["user" + i]._y));
    }
}

Denne arrangerer alle dine 'mennesker' efter deres y-værdi - hvis de inde i test velogmærket hedder user0, user1, user2 etc. Gør de ikke det, kan du rette det med følgende:

users = ['brugernavn1', 'brugernavn2', 'brugernavn3'];
onEnterFrame = function(){
    for(i = 0; i < users.length; i++){
        test["user" + i].swapDepths(Math.abs(_root._width - test["user" + i]._y));
    }
}

Håber, det er brugbart!
Avatar billede maqhem Nybegynder
14. juni 2006 - 12:08 #13
Har ikke testet det af, men du kan jo prøve og se, om det virker bare at udskifte din linie med:

test["user" + i].swapDepths(Math.abs(_root._width - test["user" + i]._y));
Avatar billede maqhem Nybegynder
14. juni 2006 - 12:09 #14
Hov!
Sådan hér:

test["user" + brugernavn].swapDepths(Math.abs(_root._width - test["user" + brugernavn]._y));

Informer mig lige, om det duer :)
Avatar billede searchjob Nybegynder
14. juni 2006 - 13:48 #15
ved ikke om du har forstået mig ret - men menneskerne rykker jo tit - så de skal jo ikke placeres på en bestemt x og y-akse, men HVER gang de rykker, så skal den matche det.
Avatar billede searchjob Nybegynder
14. juni 2006 - 13:52 #16
Bruger følgende til at indsætte brugere:

    function NyBruger(brugernavn, xAkse, yAkse)
{
    /* Laver random ID til movieclippet */
    id = 99999*Math.random();
   
   
    /* Laver et billede til figuren */
  var m = test.attachMovie("figur", "user" + brugernavn, id);
 
  m.brugernavn = brugernavn;

    /* Starter x og y akser på brugeren */
    test["user" + brugernavn]._x = xAkse;
    test["user" + brugernavn]._y = yAkse;
   
}


Når mennesket rykker:
function Moved(brugernavn,xAkse,yAkse)
{
   
        test["user" + brugernavn]._y = yAkse;
                test["user" + brugernavn]._x = xAkse;
        //test["user" + brugernavn].swapDepths(this.getNextHighestDepth());

       
        urlskriv.x = xAkse;
        urlskriv.y = yAkse;
        urlskriv.u = _parent.brugernavn;
       
        urlskriv.sendAndLoad("ryk.php",urlskriv,"POST");
}
Avatar billede searchjob Nybegynder
14. juni 2006 - 18:55 #17
Forstod du hvad jeg ville nu? :)
Avatar billede maqhem Nybegynder
14. juni 2006 - 19:37 #18
Nej, jeg forstår detsværre ingen af dine herogryffer, men arbejder på et eksempel til dig, som du så kan tilpasse til dit eget forbrug :)
Avatar billede maqhem Nybegynder
14. juni 2006 - 19:39 #19
Eller jo, forstod det faktisk godt...
Avatar billede searchjob Nybegynder
14. juni 2006 - 19:48 #20
Okay, inden jeg tester - så ville jeg lige høre:
Altså vi siger du står på y-aksen: 200

Og jeg står på y-aksen: 250

Vil jeg så have et større zIndex, altså jeg bliver vist øverst?
Og hvis jeg så er på felt 150, så har du det største?
Avatar billede searchjob Nybegynder
14. juni 2006 - 19:52 #21
Har jo en XML fil, hvor brugerne er i (der kan være helt fra 5 til 5000 brugere i)

Så vil det jo tage en evighed, at først hente brugerne, også tjekke dem. Findes der ikke en anden mulighed?
Avatar billede maqhem Nybegynder
14. juni 2006 - 20:39 #22
"Okay, inden jeg tester - så ville jeg lige høre:
Altså vi siger du står på y-aksen: 200

Og jeg står på y-aksen: 250

Vil jeg så have et større zIndex, altså jeg bliver vist øverst?
Og hvis jeg så er på felt 150, så har du det største?"

Ja, det var sådan, jeg havde forstået det.

Har jo en XML fil, hvor brugerne er i (der kan være helt fra 5 til 5000 brugere i)

"Så vil det jo tage en evighed, at først hente brugerne, også tjekke dem. Findes der ikke en anden mulighed?"

???
Tjekke dem for hvad?
Avatar billede searchjob Nybegynder
14. juni 2006 - 20:46 #23
har tilføjet et array hvor den putter brugerne i..

2sek prøver lige dette eksempel og giver dig en fejl (hvis der kommer nogle)

for (var i:Number = 0;i<usersInRoom.length;i++)
{
      test["user" + brugernavn].swapDepths(Math.abs(_root._width - test["user" + brugernavn]._y));
}

- Kan du fortælle hvad den gør?
Jeg har prøvet det nu, og den giver ingen forskel!!
Avatar billede searchjob Nybegynder
14. juni 2006 - 21:01 #24
se her - har alvet en billedeserie

http://peecee.dk/?id=43605

menneskerne er lånt fra netstationen
Avatar billede searchjob Nybegynder
14. juni 2006 - 21:11 #25
og sådan her er min funktion:

function Moved(brugernavn,xAkse,yAkse)
{
   
        test["user" + brugernavn]._y = yAkse;
        test["user" + brugernavn]._x = xAkse;
        for (var i:Number = 0;i<usersInRoom.length;i++)
        {
          test["user" + brugernavn].swapDepths(Math.abs(_root._width - test["user" + brugernavn]._y));
        }
Avatar billede maqhem Nybegynder
14. juni 2006 - 21:31 #26
function Moved(brugernavn,xAkse,yAkse){
    test["user" + brugernavn]._y = yAkse;
    test["user" + brugernavn]._x = xAkse;
    for (var i:Number = 0;i<usersInRoom.length;i++){
        test["user" + usersInRoom[i]].swapDepths(Math.abs(_root._width - test["user" + usersInRoom[i]]._y));
    }
}
Avatar billede searchjob Nybegynder
14. juni 2006 - 21:43 #27
Giver samme resultater
Avatar billede searchjob Nybegynder
14. juni 2006 - 21:45 #28
Man har sit eget personlige brugernavn:
"_parent.brugernavn"

Skal det så ikke være? :

        test["user" + usersInRoom[i]].swapDepths(Math.abs(_root._width - test["user" + _parent.brugernavn]]._y));


?
Avatar billede maqhem Nybegynder
14. juni 2006 - 21:54 #29
Hmm. Jeg laver altså lige et eksempel til dig, så kan du bare tilpasse dig det :)
Avatar billede searchjob Nybegynder
14. juni 2006 - 21:56 #30
Okay :) tak for din gode hjælp
Avatar billede searchjob Nybegynder
14. juni 2006 - 22:55 #31
håber det kan lade sig gøre
Avatar billede searchjob Nybegynder
14. juni 2006 - 23:47 #32
test["user" + usersInRoom[i]].swapDepths(Math.abs(_root._width - test["user" + usersInRoom[i]]._y));

- denne bruger jeg ligenu.

Men se og læs her:
http://peecee.dk/?id=43663
Avatar billede searchjob Nybegynder
14. juni 2006 - 23:47 #33
Avatar billede searchjob Nybegynder
15. juni 2006 - 18:13 #34
hmmm
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