09. april 2005 - 15:49Der er
19 kommentarer og 1 løsning
problemer med scroll
Hejsa
Jeg prøver at lave en scrollfunktion som kan bruges alle steder på min side.
Koden som ligger i _root er: if (_root.left = "1") { if (_root.count<40) { tellTarget ("_root.in.track") { _root.count = _root.count+1; gotoAndStop(_root.count); } } } if (_root.right = "1") { if (_root.count>0) { tellTarget ("_root.in.track") { _root.count = _root.count-1; gotoAndStop(_root.count); } } } if (_root.left1 == "1") { if (_root.count1<40) { tellTarget ("_root.in1.track1") { _root.count1 = _root.count1+1; gotoAndStop(_root.count1); } } } if (_root.right1 == "1") { if (_root.count1>0) { tellTarget ("_root.in1.track1") { _root.count1 = _root.count1-1; gotoAndStop(_root.count1); } } }
Knapperne der bruges til at scrolle har gølgende kode (dette er up knappen): on (press) { _root.right = "1"; } on (release, releaseOutside) { _root.right = "0"; }
Hvad gør jeg galt for den viker ikke. Flash meler ingen fejl i koden. lag: in og track er nogle jeg benytter.
Faktisk er det en kode jeg har fundet og nej jeg bruger ikke flash light men flash pro. Ja jeg skal have flere scroll på samme side, og derfor fandt jeg den let at gå til, men ak det var den så ikke ;(
Har du en bedre løsning jeg kunne bruge?
Jeg er ikke ekspert i koder slet ikke til scroll desværre.
Inden jeg kommer med en længere smøre om funktioner, dynamiske tekstfeltsnavne og variable, vil jeg lige høre om du kender komponenten "scrollbar"? Hvorfor bruger du ikke den i stedet for at lave dine egne scrollknapper?
jeg ved ikke om det bare er mig der er dum, eller vil det komme til at se sådan her ud: function setScroll(navn:String, opNed:String) { if(opNed == "op") { eval(navn).scroll -= 2; } else { eval(navn).scroll += 2; } }
Du skal bare navngive dine knapper som du selv beskriver. Det er helt legalt i Flash MX og frem at smide actionscriptet til en knap på tidslinjen. (det er faktisk ikke kun tilladt, det er ofte også ganske smart og praktisk)
jeg kan sq stadig ikke få det til at virke. Jeg har lavet et movieklip hvor jeg har samlet teksten og knapperne. under selve teksten er der en motion hvor den køre fra frame 1 til 40. under den ligger så selve teksten.
Er det en gammeldags måde at lave det på og er det forkert at have den motion?
Jeg kan ikke se hvad jeg gør galt. Jeg har endda prøvet at hinde både tekst og knapper med Flash target path, den finder dem, men ingen scroll.
Du skal sørge for at scriptet står i samme frame som der hvor dit tekstfelt optræder. Altså på samme level, så er det inde i et mc du har tekstfeltet, skal du også smide koden der.
Din opbygning lyder ellers ganske tidsvarende, selvom nogle ville scripte bevægelsen hvis den ikke er for kompliceret.
Jeg er ikke med på hvad du mener med at der ikke skal stå noget i "navn" og "strin"-koden? Du skriver vel tekstfeltets navn i "instance name"-feltet? Henter du forresten din tekst ind via var-feltet, så er det lidt gammeldags og kan godt konflikte....
Det syntes jeg ogå jeg har prøvet, men prøver lige igen for at være sikker ;)
Bevægelsen er bare at den flytter sig op over 40 frames ikke andet, så det er meget simpelt.
I den kode du har givet mig står der: function setScroll(navn:String, opNed:String) { if(opNed == "op") { eval(navn).scroll -= 2; } else { eval(navn).scroll += 2; } } og det er det jeg mener med navn og string (læs i koden)
Jeg har aldrig hørt om at scripte bevægelsen. Jeg skal på flashkursus her senere på året så mon ikke jeg lærer lidt om det også.
Når jeg skriver "navn:String" i en funktions parametre, er det AS2 syntaks. Jeg fortæller funktionen at jeg vil have en tekststreng (String) og ikke andet. Sender man således et tal eller en boolsk værdi, får man en fejl. Du behøver strengt taget ikke at skrive "String", det er bare god tone (og speeder scriptet op, hvis der er meget kode)
Umiddelbart kan jeg ikke gætte mig til hvor din fejl ligger. Har du mulighed for at smide fla'en op på en webserver, så jeg kan kigge i den?
Det har ikke været muligt at få koden til at virke, jeg har uploaded fla til manhatten.dk/om-shk.fla.
Som du kan se har jeg lavet en anden løsning hvor jeg henter data via ekstern txt som jeg fint kunne få til at virke. Der er 2 scrolls i denne fla, og den ene er i roden og den anden i en mc, så leg bare ;)
...det bliver lidt en øvelse i at ramme den rigtige sti - både for den overordnede funtion, men også for det tekstfelt der skal kaldes. Du skal huske at functionen altid tager udgangspunkt i hvor den selv ligger på tidslinje, hvorfor du skal supplere den relative sti til det tekstfelt du vil scrolle i.
...men vil da lige indskyde at det ikke burde være så svært. Det virker fint hos mig med de ændringer af din kode som jeg beskrev ovenfor. Kan du have omnavngivet dine tekstfelter? Eller måske ikke fået navngivet det mc på frame 80 hvor det andet tekstfelt ligger?
(I dit eks. her gør det ikke alverden at du gentager koden, men roder du dig ud i nogle større projekter, vinder du meget ved at forstå sammenhængen i ovenstående)
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.