Jeg skal have lavet en knap der går til en næsten random frame, dvs. jeg skal kunne definere hvilke frames den må vælge imellem fx frame 7, 10, 15 og 47 (men den må så også kun gå til dem og ingen andre...
Scriptet er forholdsvis meget beregnet til at ligge på en frame. Hvis du vil have det anderledes, skal du smide det ned et mc's "onClipEvent" eller en knaps "on". Nu er jeg selv klart mest til at kode på tidslinje, så lav dig et mc som du kalder "knap_mc" og tyr det her ind i en frame på main timeline:
var randomArray:Array = new Array(7, 10, 15, 47); knap_mc.onPress = function() { gotoAndStop(Math.round(Math.random() * randomArray.length)); };
Hmm det virker stadig ikke, synes ellers selv jeg har gjort nøjagtigt som du skrev er det muligt at uploade den et sted så du lige kunne kikke på hvad jeg gør galt?
som jeg har forstået det så skal jeg smide koden ind i et lag kaldet fx actionscript og så skal jeg kalde mit "movieclip" for knap_mc, men der sker intet når jeg så trykker på det "movieclip"
Bliver cursoren til en hånd når du kører din mus henover knap_mc-movieclippet? Er det i "instance"-feltet i property panelet du har navngivet dit mc? (for det skal det være ;)
mit movieklip er globussen på frame 4 på scene 2 og array'en er skrevet i actionscript på tidslinien. og det er uploadet på http://peecee.dk/?id=22164
Den "ultimative" plan er at det også skal virke på tværs af scener, men det har jeg ikke skrevet før fordi jeg ikke engang kunne få det til at virke på den samme scene :)
Jeg håber du kan se hvad der er galt for jeg er helt lost :)
Det der går galt er at det script jeg har smidt efter dig bliver eksekveret på frame 1, hvor det så kigger sig omkring, konstaterer at det ikke kan finde "knap_mc" - og dør derefter i stilhed. Når man arbejder med at scripte på frames skal man huske at movieclips'ne man scripter til findes i samme frame som scriptet.
Hvis det nu var mig der sad med dit projekt, som forresten ser ganske sejt ud, ville jeg nok lave et layer kun til min gå-videre-knap. Derefter ville jeg gøre den henholdsvis synlig eller usynlig alt efter om den skulle bruges eller ej (knap.mc._visible = false). På den måde kunne jeg bruge mit script på frame 1 og i resten af filmen. Dit alternativ er at paste scriptet ind på alle frames hvor knappen optræder - eller at lægge scriptet på knappen. Men dér skal du også skal smide scriptet på knappen for hver gang der er en keyframe. Scripts på mc'er resettes hver gang der er en ny instans af movieclippet/knappen - og det er der hvis man sætter en keyframe.
Jeg vil spare dig for en lang enetale omkring brugen af scener. Det er en usagt regel at man kun bruger frames til rene animeringsprojekter, lige så snart der kommer scripting ind i billedet, bør man, af en lang række årsager, holde sig langt væk og i stedet smide dele af projektet ned i mc'er. Derfor kan jeg trods 4-5 års erfaring med AS ikke engang hjælpe dig kaldet scener imellem - jeg aner ikke hvordan man gør og vil også hellere leve i uvidenhed ;o)
ah det var der fejlen lå :) troede at jeg bare kunne lade være med at lave keyframes så ville actionscriptet virke i alle sammen :) Men nu har jeg så et nyt problem, dette er de frames den kan vælge imellem 1, 5, 10, 15, 20, 24, 28, 32, 35, 40, 46, 50, 55, 61 problemet er så bare at den også kan finde på at vægle fx frame 8 eller 12, hvilket den ikke burde!
Hvordan ser resten af dit script ud? For umiddelbart kan jeg ikke lure nogen syntaks-fejl i ovenstående linje? Du kan evt. slette linjen - "trace" udskriver udelukkende til outputvinduet.
ah doooh, har fundet fejlen, jeg havde ikke kopieret det sidste }; men nu funker det, mange tak for hjælpen så mangler jeg bare et par småting, som fx at finde actionscript til at lukke flash ned og noget hvor den linker til siden hvis man ikke har flash. Men mange tak for hjælpen, kan du ikke lige skrive så du kan få dine point..
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.