Avatar billede rold Nybegynder
08. juli 2003 - 13:42 Der er 19 kommentarer og
1 løsning

Random load movie

Hey dér

Jeg skal have mit site til at loade en "tilfældig" movie blandt eks. 5 stk. swf-movies hver gang man besøger siden. Jeg forestiller mig noget med en variabel der genererer et random tal, der så bruges til at bestemme hvilken movie der skal loades. Nogen bud?

-Rold
Avatar billede barklund Nybegynder
08. juli 2003 - 13:49 #1
Det er også kun en dag siden, at spørgsmålet blev stillet sidst:

http://exp.dk/spm/373549
Avatar billede jakwag Nybegynder
08. juli 2003 - 14:26 #2
Hvis du ikke ønsker at navnene skal hedde 1.swf og 2.swf osv men nogle helt tilfældige navne, kan du gøre det sådan her:

var movies_array = new Array("film.swf","jakob.swf","side2.swf","personale.swf","contact.swf");
loadMovie(movies_array[random(5)], movieTarget);

: ) Jakob
Avatar billede rold Nybegynder
08. juli 2003 - 20:30 #3
Tak for hjælpen begge to.
De virker alt sammen meget fint, men jeg er løbet ind i et andet problem; De forskellige swf'er loades ind og erstatter et instance ved navn "backgroundClip". Er det ikke meningen at de nye swf'er skal "arve" backgroundClip's egenskaber? -Måske skal jeg lige nævne at jeg bruger følgende script til at deffinere egenskaberne:

Stage.align = "TL";
Stage.scaleMode = "noScale";
backgroundClip.onResize = function() {
    this._width = Stage.width;
    this._height = Stage.height;
};
Stage.addListener(backgroundClip);

-De swf'er der loades skal skaleres til hele browservinduets størrelse. Håber det giver mening :-)

-Rold
Avatar billede barklund Nybegynder
08. juli 2003 - 20:39 #4
Når du laver en loadMovie ind i et movieclip, så nulstilles alle variabler og properties... Men du kan jo bare lave et dummy movieclip inden i background, som du så loader i:

Stage.align = "TL";
Stage.scaleMode = "noScale";
backgroundClip.onResize = function() {
    this._width = Stage.width;
    this._height = Stage.height;
};
Stage.addListener(backgroundClip);
backgroundClip.createEmptyMovieClip("dummy",1);

Og så loade:

var movies_array = new Array("film.swf","jakob.swf","side2.swf","personale.swf","contact.swf");
loadMovie(movies_array[random(5)], backgroundClip.dummy);
Avatar billede rold Nybegynder
08. juli 2003 - 21:11 #5
Nu bliver det en anelse langhåret. Hvor er det præcis jeg skal lave dummy clippet?

Og bliver

loadMovie((random(3)+1)+".swf", _root.backgroundClip);

erstattet af

var movies_array = new Array "film.swf","jakob.swf","side2.swf","personale.swf","contact.swf");
loadMovie(movies_array[random(5)], backgroundClip.dummy);

???
Avatar billede barklund Nybegynder
08. juli 2003 - 21:20 #6
Du skal lave dummy movieclippet der, hvor jeg har tilføjet det...

loadMovie((random(3)+1)+".swf", _root.backgroundClip.dummy);
Avatar billede rold Nybegynder
08. juli 2003 - 21:27 #7
Jeg kan godt loade ind i "dummy" men den skaleres stadig ikke
Avatar billede barklund Nybegynder
08. juli 2003 - 22:05 #8
Stage.align = "TL";
Stage.scaleMode = "noScale";
backgroundClip.onResize = function() {
    this.dummy._width = Stage.width;
    this.dummy._height = Stage.height;
};
Stage.addListener(backgroundClip);
backgroundClip.createEmptyMovieClip("dummy",1);
Avatar billede rold Nybegynder
08. juli 2003 - 22:24 #9
Hm, stadig ingen skalering...
Avatar billede barklund Nybegynder
08. juli 2003 - 23:15 #10
Jeg har lige lavet en tom bar.fla med:

createEmptyMovieClip("backgroundClip",-1);
Stage.align = "TL";
Stage.scaleMode = "noScale";
backgroundClip.onResize = function() {
    this.dummy._width = Stage.width;
    this.dummy._height = Stage.height;
};
Stage.addListener(backgroundClip);
backgroundClip.createEmptyMovieClip("dummy",1);
backgroundClip.dummy.loadMovie("foo.swf");

og en foo.swf med en stor firkant og derefter eksporteret som en .exe... Det fungerer fint!
Avatar billede rold Nybegynder
08. juli 2003 - 23:45 #11
Hvorfor eksporteret som en .exe?
Avatar billede jakwag Nybegynder
09. juli 2003 - 09:25 #12
barklund > Når man loader noget ind i et movieclip nulstilles alle properties da ikke?!? Det er netop derfor det er godt at bruge et target clip, da man jo så kan styre hvor den loadede swf havner - altså _x og  _y vil stadig være det samme. Det gælder også for de andre properties. Du har sikkert ret angående variabler.
Avatar billede jakwag Nybegynder
09. juli 2003 - 09:44 #13
kan problemmet være at hvis det nye movieclip der loades har en anden størrelse end det der var der, skal størrelsen sættes EFTER at det er loaded?

Undskyld hvis jeg er way off - det var bare en tanke.
Avatar billede barklund Nybegynder
09. juli 2003 - 10:12 #14
Rigtigt... de predifenerede egenskaber nulstilles ikke, men alle custom-satte variabler (inklusive events og listeners) fjernes...
Avatar billede barklund Nybegynder
09. juli 2003 - 10:14 #15
Selvfølgelig skal det det... Du kan putte en onData på:

_root.backgroundClip.dummy.onData = function() {
    this._width = Stage.width;
    this._height = Stage.height;
}
_root.backgroundClip.dummy.loadMovie((random(3)+1)+".swf");
Avatar billede jakwag Nybegynder
09. juli 2003 - 10:17 #16
nå, nu kan jeg se hvad du mener. onResize forsvinder altså hvis du ikke laver en dummy... : )
Avatar billede barklund Nybegynder
09. juli 2003 - 11:18 #17
Netop
Avatar billede rold Nybegynder
09. juli 2003 - 21:19 #18
barklund >> Jeg har stadig lidt problemer med at få det til at virke, jeg tror jeg roder lidt videre med det selv. Hvis du smider et svar vil jeg gerne give dig nogle point for din tålmodihed :-)
Avatar billede barklund Nybegynder
09. juli 2003 - 21:47 #19
Det burde nu virke... Det gjorde det for mig... :)
Avatar billede barklund Nybegynder
10. juli 2003 - 10:47 #20
Tarker alligevel... har du problemer, så stiller du bare dine spørgsmål her..
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