Avatar billede jesperskov2 Nybegynder
17. februar 2006 - 07:24 Der er 5 kommentarer og
1 løsning

Hop automatisk til random frame?

Hej Eksperter.

Jeg sidder netop lige og leger med et topbanner. I det topbanner har jeg froskellige billeder og effekter lige efter hinanden, men nu vil jeg gern have at i starten af min flash film - så hopper den random hen til en af dem.

Altså et sted i starten af min film, skal den radom vælge om den hopper til fx. frame 44, 145 eller måske 230. Altså hver gang man opdaterer/kommer ind på siden igen risikerer man at et helt nyt bilelde/m. effekter viser sig i toppen.

Nu har det gået mig på i noget tid, har googlet min flash - men kan ikke rigtig finde noget. Forresten så bruger jeg Macromedia Flash MX, hvis det har nogle betydning.

Ser frem til at hurtigt og nemt svar :)
Avatar billede jesperskov2 Nybegynder
17. februar 2006 - 08:00 #1
Altså, som sagt - lige kort, for at opsumere. Det skal bare være et lille actionscript, som i starten af filmen automatisk vælger om den skal gå til fx. 44, 145 eller måske 240. Håber der er et klogt hovede som kan klare det ;-)
Avatar billede thulstrup Nybegynder
17. februar 2006 - 08:42 #2
Her er et eksempel på hvordan det kan gøres:

var frames:Array = new Array(44, 145, 240);
var rand:Number = Math.floor(Math.random()*frames.length);
var frame:Number = frames[rand];
this.onEnterFrame = function() {
    if (this.getBytesLoaded() == this.getBytesTotal() && this.getBytesTotal()>10) {
        delete this.onEnterFrame;
        this.gotoAndPlay(frame);
    }
};

Jeg har også smidt en preloader på, da du af gode grunde ikke kan hoppe til f.eks. frame 240, hvis den ikke er loaded endnu.
Avatar billede jesperskov2 Nybegynder
17. februar 2006 - 09:52 #3
var frames:Array = new Array(2, 451);
var rand:Number = Math.floor(Math.random()*frames.length);
var frame:Number = frames[rand];
this.onEnterFrame = function() {
    if (this.getBytesLoaded() == this.getBytesTotal() && this.getBytesTotal()>10) {
        delete this.onEnterFrame;
        this.gotoAndPlay(frame);
    }
};

- det virker altså ikke helt, den tager bare frame 2 hver gang? Men er du på msn - så må du meget gerne lige adde jesperskov@msn.com - lidt hurtigere den vej :)
Avatar billede thulstrup Nybegynder
17. februar 2006 - 09:58 #4
Det virker fint. Prøv selv at teste:

for (var i:Number = 0; i<100; i++) {
    var frames:Array = new Array(2, 451);
    var rand:Number = Math.floor(Math.random()*frames.length);
    var frame:Number = frames[rand];
    trace(frame);
}
Avatar billede jesperskov2 Nybegynder
17. februar 2006 - 11:07 #5
Nej - det virker altså ikke, men har du msn? eller en mail adresse? så kan jeg evt. lige sende dig .fla filen, så du kan se at det ikke virker..

Min msn: jesperskov@msn.com
Avatar billede thulstrup Nybegynder
17. februar 2006 - 11:46 #6
My bad, eftersom det er til Flash MX, skal det være uden Strong Typing:

var frames = new Array(44, 145, 240);
var rand = Math.floor(Math.random()*frames.length);
var frame = frames[rand];
this.onEnterFrame = function() {
    if (this.getBytesLoaded() == this.getBytesTotal() && this.getBytesTotal()>10) {
        delete this.onEnterFrame;
        this.gotoAndPlay(frame);
    }
};
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