Avatar billede giorgio Nybegynder
09. april 2005 - 15:49 Der 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.
Avatar billede _k Nybegynder
10. april 2005 - 21:19 #1
Scripter du til Flash Light? For ellers er din syntaks så forældet at der gror mos på den ;o)

Hvad er det helt præcis du vil? Har du mange tekstfelter i din film som skal styres af 2 scrollknapper?
Avatar billede giorgio Nybegynder
11. april 2005 - 07:22 #2
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.
Avatar billede _k Nybegynder
11. april 2005 - 11:41 #3
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?
Avatar billede giorgio Nybegynder
11. april 2005 - 12:05 #4
jeg bruger ikke de komponenter da hele siden som helhed skal passe sammen, dvs. at knapperne også skal passe i de rigtige former og farver.
Avatar billede _k Nybegynder
11. april 2005 - 13:36 #5
Du kan nu godt "skinne" scrollbaren til at se ud som du vil ha' det. Men nok om det, du burde kunne lave en funktion som ser nogenlunde sådan her ud:

function setScroll(navn:String, opNed:String) {
    if(opNed == "op") {
        eval(navn).scroll -= 2;
    }
    else {
        eval(navn).scroll += 2;
    }
}

knap1.onPress = function() {
    setScroll("tekstfelt1", "op");
    };
knap2.onPress = function() {
    setScroll("tekstfelt1", "ned");
    };

..."knap1" og "knap2" er så navnene på dine knapper. "tekstfelt1" er navnet på dit tekstfelt du vil scrolle i.
Avatar billede giorgio Nybegynder
11. april 2005 - 14:19 #6
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;
    }
}

arrowup.onPress = function() {
    setScroll("scrolltextone", "op");
    };
arrowdown.onPress = function() {
    setScroll("scrolltextone", "ned");
    };

Skal noget ind under knappen? eller skal den bare navngives, arrowdown og arrowup?
Avatar billede _k Nybegynder
11. april 2005 - 14:58 #7
Det ser da ikke så dumt ud ;o)

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)
Avatar billede giorgio Nybegynder
11. april 2005 - 19:58 #8
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.

hvad gør jeg forkert?
Avatar billede giorgio Nybegynder
11. april 2005 - 19:59 #9
der skal ikke stå noget i navn og string i koden vel?
Avatar billede _k Nybegynder
11. april 2005 - 21:05 #10
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....
Avatar billede giorgio Nybegynder
11. april 2005 - 21:22 #11
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å.
Avatar billede _k Nybegynder
12. april 2005 - 09:11 #12
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?
Avatar billede giorgio Nybegynder
20. april 2005 - 06:58 #13
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 ;)
Avatar billede _k Nybegynder
20. april 2005 - 09:19 #14
Bare det virker, er enden jo god .... eller noget i den retning ;o)

Smider et svar hvis du vil give mig point. Ellers så læg et svar selv og luk spørgsmålet.
Avatar billede giorgio Nybegynder
21. april 2005 - 06:27 #15
du skal nok få point hvis du kan få det til at virke, i den fla jeg har uploaded. Jeg ville jo hellere bruge din da den kan indeholde grafik også.
Avatar billede _k Nybegynder
21. april 2005 - 09:36 #16
Omskriv din funktion og dine knapper til:

up.onPress = function() {
    doScroll(-1, "Text");
};
down.onPress = function() {
    doScroll(1, "Text");
};
up.onRelease = down.onRelease=function () { doScroll(0);};
//
doScroll = function (val, path) { this.onEnterFrame = function() {eval(path).scroll += val;if (!val) {delete this.onEnterFrame;}};};


Kald det mc, hvor du har dit andet tekstfelt liggende, for "vedtaegter" og erstat dit script med:

up.onPress = function() {
    _parent.doScroll(-1, "vedtaegter.Text");
};
down.onPress = function() {
    _parent.doScroll(1, "vedtaegter.Text");
};
up.onRelease = down.onRelease=function () { _parent.doScroll(0);};

...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.
Avatar billede giorgio Nybegynder
21. april 2005 - 10:12 #17
jeg kan stadig ikke se hvor f..... den kode skal sættes ind. kunne jeg logge dig til at lave den i den fla og sende den til mig: flash@manhatten.dk
Avatar billede _k Nybegynder
21. april 2005 - 10:54 #18
Kodestumperne skal bare udskifte dem du allerede har skrevet. Altså på frame 45 på main timeline og på første frame af movieclippet på frame 80.
Avatar billede giorgio Nybegynder
26. april 2005 - 06:42 #19
Det er ikke lykkedes mig at få det til at virke, jeg har sat det op som skrevet, emn der sker ikke noget når jeg scroller.

Det er sat til dynamic text og med var: Text, men intet sker ved croll.

JEg bruger det jeg har, det virker okay ;)
Avatar billede _k Nybegynder
26. april 2005 - 09:47 #20
Takker for point.

...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)
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

IT-JOB

Capgemini Danmark A/S

Client Partner

Riskpoint A/S (Riskpoint Solutions Limited)

IT Business Analyst