Avatar billede superboy Nybegynder
05. december 2005 - 11:17 Der er 17 kommentarer

actionscript der går til en næsten Random frame?

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...
Avatar billede _k Nybegynder
05. december 2005 - 13:34 #1
var randomArray:Array = new Array(7, 10, 15, 47);
randomArray.sort(function () { return random(3)-1;});
gotoAndStop(randomArray[0]);
Avatar billede _k Nybegynder
05. december 2005 - 13:39 #2
...eller:

var randomArray:Array = new Array(7, 10, 15, 47);
gotoAndStop(Math.round(Math.random() * randomArray.length));
Avatar billede superboy Nybegynder
07. december 2005 - 15:03 #3
Hmm jeg får bare denne fejl

must appear within on handler
    gotoAndStop(Math.round(Math.random() * randomArray.length));

Total ActionScript Errors: 2     Reported Errors: 2

eller denne

must appear within on handler
    gotoAndStop(randomArray[0]);

Total ActionScript Errors: 3     Reported Errors: 3
Avatar billede _k Nybegynder
07. december 2005 - 15:41 #4
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));
};
Avatar billede superboy Nybegynder
08. december 2005 - 11:11 #5
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"
Avatar billede _k Nybegynder
08. december 2005 - 12:01 #6
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 ;)
Avatar billede superboy Nybegynder
08. december 2005 - 20:28 #7
Nej den bliver IKKE til en cursor og nej det var heller ikke i instance feltet, men det er rettet, det hjalp barr ikke meget...

Og jeg fatter minus igen...
Avatar billede _k Nybegynder
08. december 2005 - 23:21 #8
Hvis du har mulighed for det, kan du så ikke lægge filen op et eller andet sted? Der må være et eller andet helt åbentlyst vi overser?
Avatar billede superboy Nybegynder
09. december 2005 - 15:59 #9
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 :)
Avatar billede _k Nybegynder
10. december 2005 - 20:57 #10
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)
Avatar billede superboy Nybegynder
11. december 2005 - 20:47 #11
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!

var randomArray:Array = new Array(1, 5, 10, 15, 20, 24, 28, 32, 35, 40, 46, 50, 55, 61);
knap_mc.onPress = function() {
  gotoAndStop(Math.round(Math.random() * randomArray.length));
};
Avatar billede _k Nybegynder
11. december 2005 - 23:08 #12
Det kan jeg da godt forstå, for jeg havde lavet en fejl. Den her skulle gerne være mere skudsikker:

var randomArray:Array = new Array(1, 5, 10, 15, 20, 24, 28, 32, 35, 40, 46, 50, 55, 61);
knap_mc.onPress = function() {
  gotoAndStop(randomArray[Math.floor(Math.random() * (randomArray.length-1))]);
  trace(Math.floor(Math.random() * (randomArray.length-1)));
};
Avatar billede superboy Nybegynder
13. december 2005 - 22:31 #13
**Error** Scene=Scene 2, layer=Actions, frame=14:Line 5: Syntax error.
      trace(Math.floor(Math.random() * (randomArray.length-1)));

Total ActionScript Errors: 6     Reported Errors: 6


æv nu kommer der denne fejl.. nogen gode ideer?
Avatar billede _k Nybegynder
13. december 2005 - 22:42 #14
Hvilken version af Flash sidder du med?
Avatar billede superboy Nybegynder
13. december 2005 - 22:45 #15
uha du er hurtig, det er Flash Professional 8 jeg leger med :)
Avatar billede _k Nybegynder
13. december 2005 - 22:56 #16
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.

..og du må gerne kalde mig "lynet" ;)
Avatar billede superboy Nybegynder
13. december 2005 - 23:31 #17
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..
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