21. juli 1999 - 14:57Der er
20 kommentarer og 1 løsning
While loop i Netscape.
Hejsa.
Som de fleste nok ved kan man i Netscape ikke få fat i lag der ligger i andre lag ved at kalde deres navn direkte, men man er nødt til at kalde document.layername.layername.layername.
Jeg er dermed igang med at lave en funktion der skal kunne få fat i alle lag - uanset hvor mange der er - et uendeligt loop.
funktionen ser således ud:
function ShowAll(startlayer) { for (i = 0; i < startlayer.layers.length; i++) { currentLayer = startlayer.layers[i]; currentLayer.visibility = "show"; ShowAll(startlayer.layers.layers[i]) } }
Problemet er at det fungerer ikke - for når funktionen køres anden gang - inde fra sig selv bliver den gamle i variabel overskrevet, og den bliver ved med at loope med 1 i stedet for at tælle op som den skulle.
Er der nogen der kan figure out løsningen på det problem - så er der points at hente!
Faktisk er det et meget større problem end som så. Det du foreslår jumper vel kun vise det første layers nestede layers, derefter alle af det sidste nestede layers layer og derefter det sidste nestede nested layes layer osv.
Det du savner er noget der miner om en directory parser. Og det er straks værre.
Fordelen ved at bruge det er at man har lidt mere konrtol over layerne. Hvis du f.eks har halvdelen af layerne visible og den anden halvdel hidden, så kan du swappe. eller hvad man nu kan finde på.
Jumper: beklager - jeg var lidt negativ - er bare træt af folk der bare svarer for at svare på eksperten! - og ja - justincase's svar med hans script virkede - cool nok!
justincase: skriv et eller andet som et svar - så du får pointsne...
juntincase: nu er eneste problem bare at den kører lagene igennem i forkert rækkefølge.
Jeg vil gerne have den til at køre dem igennem så først et lag, og dets underlag, og dets underlag, og så først derefter at køre videre til næste lag i sit eget level. Dette er et Arrange spørgsmål - som kommer når lagene skal placeres.
Nej jeg er ikke helt sikker på hvad du mener. Kan du poste koden, eller har du en side jeg kan kigge på.
Som scriptet er nu så tar den første layers under layers. Dem kan du så arrangere, så de ikke overlapper. Derefter tar den første underlayer's første under layers, derefter det andet.
Det burde da være muligt at arrangere layerne ud fra scriptet.
Men det er lidt svært at teoretisere over uden noget kode at kigge på.
Som scriptet er nu - så tager den første layers - kører dem igennem, tager derefter tager den første lags underlayers - derefter andet lags underlayer - osv.
Jeg vil gerne have den til at tage det første lag yderst - og lade den tage alle underlayers så langt ned de findes - og først derefter fortsætte til lag nr. 2 yderst.
Det er tiltænkt multiple outlines - som skal funge i netscape.
Den Arrange funktion der findes ser sådan ud - og er tiltænkt til at lave 10 pixels mellemrum mellem hvert lag - og start med at forestil dig at det hele skal vises på skærmen i den rigtige rækkefølge - jeg har skrevet lidt om i den så man bare starter den med Arrange() - og så starter den automatiskk fra document.
function Arrange(startlayer) { if (startlayer == null) { nextY = 0; layerArray.length = 0; layerCount = 1; layerArray[1] = document; Arrange(layerArray[1]); } else { var currentCount = 0;
Jeg vil godt tage en omgang til med det, men det bliver nok først imorgen. Jeg har overskredet en deadline og sidder og sveder koldsved for at overholde den. Min ferie startede idag, principielt, så arbejdet skal overstås først.
Nu hvor vi går så tæt på det der egenlig sker, kan du så ikke ligge en link, eller evt. sende den til mig : elvers@rossing.dk
Desværre har jeg ikke de store mail-muligheder - vores server har et problem der først bliver lavet i løbet af ugen....
Men kan vi ikke bare tage den her?
Synes godt om
Ny brugerNybegynder
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.