Avatar billede angelhot Nybegynder
25. oktober 2004 - 16:15 Der er 30 kommentarer og
1 løsning

loadmovie i MX 2004

Jeg har prøvet at søge efter loadmovie her på siden, dog ikke noget som jeg blev ret klogere af. Jeg har helt glemt, hvordan man laver det.

Jeg har en hjemmeside i flash, hvor jeg har en masse andre swf. film ved siden af, som skal indlæses ind på selve hjemmesiden ved hjælp af loadmovie, buttom og selvfølgelig placering af filmen med cordinatorne.

Nogen der kan hjælpe mig med dette?
Avatar billede le_bon Nybegynder
25. oktober 2004 - 16:32 #1
Jeps. Lav et tomt MC med instancenavnet "container"

Knapperne giver du så følgende action:

on (release) {
    loadMovie("minfilm.swf", "container");
}
Avatar billede pyroman Nybegynder
25. oktober 2004 - 16:33 #2
Du laver et tomt mc, enten manuelt eller scriptet og bruger følgende kode:

this.createEmptyMovieClip("tomtMc", 1); //Laver et tomt mc, sket hvis du har et i forvejen
tomtMc.loadMovie("stiTilFlash.swf");


Men i MX2004 er der et nyt smart objekt der gør det nemmere at holde styr på de film man henter ind:

var clipHenter = new MovieClipLoader();
var eventListener = new Object()
eventListener.onLoadComplete = function(target){
  trace(target+" er hentet");
}
clipHenter.addListener(eventListener);
clipHenter.loadClip("stiFilFlash.swf", tomtMc);


Den henter stiTilFlash.swf ind i tomtMc. Der findes desuden en række andre funktioner og events til at kontrollere hentningen, bl.a.:

events:

minListener.onLoadProgress()
minListener.onLoadInit()
minListener.onLoadError()

metoder:

minMovieClipLoader.getProgress()
Avatar billede le_bon Nybegynder
25. oktober 2004 - 16:38 #3
Ja ok, hehe....pyroman > minMovieClipLoader.getProgress() kan den bruges til at lave en progressbar i selve hoved-swf'en, og ikke i den ind-loadede swf?
Avatar billede pyroman Nybegynder
25. oktober 2004 - 17:00 #4
Du kan ikke bruge MovieClipLoaderen i det clip der skal hentes ind - den kan jo ikke loade sig ind i sig selv - eller måske kan den godt, men den kan ikke loade sig selv ind i en anden film... Det skal være filmen som skal hente der bruger MovieClipLoaderen...
Avatar billede le_bon Nybegynder
25. oktober 2004 - 17:04 #5
Nej, det er også det jeg mener. Normalt plejer jeg at lave en progressbar i det clip det skal loades. Men man kan altså placere progressbaren i den film der henter clippet i stedet(?) - Er det korrekt?

c",)
Avatar billede pyroman Nybegynder
25. oktober 2004 - 17:13 #6
Jeg har altid lavet progressbaren i det hentende clip, da progressen starter tidligere da man ved at placere loaderen i det hentede clip først skal hente det frame hvori loadren ligger - og der kan jo faktisk ligge ret store billeder osv.
Altså: Du får en mere præcis progressbar hvis den er i den hentende flash...

Men kan sgu stadigvæk ikke helt vænne mig af med at bruge getBytesLoaded osv... på den oldSchool måde ;)
Avatar billede angelhot Nybegynder
25. oktober 2004 - 17:20 #7
Pyroman: Alle de koder forvirrer mig en del. Du kan vel ikke forklare nærmere, hvor koderne skal smides hen i hvordan og hvorledes.
Avatar billede angelhot Nybegynder
25. oktober 2004 - 17:36 #8
le_bon: Nu er mine swf. fil i størrelse 721x263 pixel. Skal den container også være i samme størrelse for at de swf. filer kun loader indenfor den omkreds?
Avatar billede lyden Nybegynder
25. oktober 2004 - 18:04 #9
Citat : Skal den container også være i samme størrelse for at de swf. filer kun loader indenfor den omkreds?

Nej, mclippet er bare en tom beholder.
Avatar billede le_bon Nybegynder
25. oktober 2004 - 18:06 #10
Nej, container MC'et skal være helt tomt. Så skal det være placeret på din scene der hvor det indloadede clip's koordinat 0 x 0 skal være. - Men det finder du ud af så snart det lykkes dig at loade clippet.
Avatar billede angelhot Nybegynder
25. oktober 2004 - 18:13 #11
har fået det til at placere den rigtig, men har lige et sidste spørgsmål. Når jeg trykker på de andre knapper, forsvinder den jo.. men jeg vil eksempelvis gerne have siden stående, som er loadet ind, NÅR jeg trykker på en anden knap, som kun linker til undermenuerne.. hvis I forstår?
Avatar billede le_bon Nybegynder
25. oktober 2004 - 20:06 #12
Så kan du gøre én af to ting:

1) Du laver en container for hvert clip der skal loades (og kalder dem container1, container2, osv.)

2) Du bruger følgende action i stedet:

on (release) {
    loadMovie("minfilm.swf", 5);
}

hvor 5 er den level clippet bliver loadet ind i. Så skal dine clips bare loades ind i forskellige levels.


c",)
Avatar billede le_bon Nybegynder
25. oktober 2004 - 20:08 #13
Hvis du bruger nr. 2 vil clippet altid blive loadet ind på koordinaterne 0x0, så du skal tilpasse dine clips så tingene kommer til at ligge de rigtige steder.

Jeg vil nu anbefale mulighed 1.
Avatar billede angelhot Nybegynder
25. oktober 2004 - 21:52 #14
le_bon: Nr. 1 virker ikke på den måde.. når jeg trykker på de andre knapper, forsvinder den film som var loadet ind. Det skal det også ved de knapper, som ikke linker til undermenuerne, fordi de skal åbne en ny side frem, men når profil, showcase, og tutorials knappen trykkes på, som linker til undermenenuer forsvinder det movie clip som var der før, hvilket det ikke skal før man trykker på en af undermeneuerne..

Ved Nr. 2 virker det, dog forsvinder movieclippet ikke, når man trykker på en anden knap, hvilket vil siges, at de bliver lagt oveni hinanden, og det ser ikke særlig smart ud.. nogen ide om hvad jeg kan gøre?
Avatar billede angelhot Nybegynder
25. oktober 2004 - 21:53 #15
skal lige siges, at mine menu knapper er lavet som et movieclip sympol og det kun er undermenuerne, der er lavet som et alm. buttom symbol.
Avatar billede angelhot Nybegynder
25. oktober 2004 - 22:00 #16
Du kan se lidt her, hvordan systemet foregår.. måske vil det hjælpe lidt.

http://www.artdesignwork.com/beta.html
Avatar billede le_bon Nybegynder
25. oktober 2004 - 22:10 #17
Jeg har lidt svært ved at holde det kølige overblik over din fla. Men jeg tror du kan bruge nedenstående action på de knapper der skal fjerne et mc samtidig med at det loader et nyt, er det ikke det du mener?

on (release) {
    unloadMovie("gammelside.swf", 5);
    loadMovie("nyside.swf", 5);   
}
Avatar billede le_bon Nybegynder
25. oktober 2004 - 22:14 #18
Ok, så lige din seneste kommentar. Det var også nogenlunde som jeg havde forestillet mig det.

Det ser i øvrigt udmærket ud!  c",)
Avatar billede angelhot Nybegynder
25. oktober 2004 - 22:31 #19
Nu prøver jeg, at skære det ud i pap.

1. når jeg eksempelvis har fået loadet en mc1 ind i midten og trykker evt. profil, hvor undermenuerne flyver ind. Der skal mc1 stadig være på siden, men når jeg så trykker på en af undermenuerne, som "livsforløb", så loades den nye side istedet ind for mc1

2. når der så trykkes på en af de andre knapper som ikke har undermenuerne, ja, så skal der selvfølgelig bare loades en ny side ind med det samme, hvor mc forsvinder.

men det kan jo være at loadmovie funktionen ikke kan forstå det, da det anser "profil" som en knap, der åbner en ny side og derved, forsvinder mc1 når der trykkes på profil, showcase eller tutorials?

forresten, tak for komplimenten :)
Avatar billede angelhot Nybegynder
25. oktober 2004 - 22:35 #20
on (release) {
    unloadMovie("gammelside.swf", 5);
    loadMovie("nyside.swf", 5);   
}

Jeg forstår ikke rigtig dette system. Hvis jeg nu skal have åbnet "livsforløb", hvad skal der så stå.. for når jeg prøver melder den fejl, men som sagt forstår jeg det ikke rigtig
Avatar billede angelhot Nybegynder
25. oktober 2004 - 22:46 #21
Jo, det skal fjerne et mc samtidig med at det loader et nyt. Det skal det bare ikke på de knapper som profil, showcase og tutorials. Først når man trykker på undermenuerne..
Avatar billede pyroman Nybegynder
25. oktober 2004 - 23:03 #22
Hvorfor lægger du ikke bare ET mc hvori alle sider hentes? Dette mc skal så bare række over alle frames... Så kan du bare bruge:

mitEneMc.loadMovie("nyside.swf");

desuden så unloader loadMovie() automatisk den film der i forvejen er hentet ind i mc'et...
Avatar billede angelhot Nybegynder
25. oktober 2004 - 23:25 #23
Du synes altså, at jeg skal lave sådan, at hele siden loades på én gang?

Hvad skal denne kode, så bruges til og hvad gør den?

mitEneMc.loadMovie("nyside.swf");
Avatar billede le_bon Nybegynder
26. oktober 2004 - 01:15 #24
Wooow....så er forvirringen ved at være total.
pyroman > Vi er gået lidt videre med en løsning hvor der ikke loades ind i et mc. - Selv om det ikke er den mest strømlinede løsning.
angelhot > På knapper "Livsforløb" laver du følgende action:

on (release) {
    unloadMovie("kundskaber.swf");
    unloadMovie("interesser.swf");
    unloadMovie("konpetencer.swf");
//Her fortsætter du med at unloade resten af siderne.
    loadMovie("livsforloeb.swf", 5);   
}

Samme slags action smider du på de knapper der ikke har en undermenu. På de knapper der har en undermenu skal du bare undlade unloadMovie-delen.
Avatar billede angelhot Nybegynder
26. oktober 2004 - 12:18 #25
Mange tak for det. Nu virker det, som jeg gerne vil have det, udover, hvordan jeg får placeret mc det rigtig sted på siden. Hvordan lyder koden for det og hvor skal det skrives?
Avatar billede le_bon Nybegynder
26. oktober 2004 - 12:23 #26
Super!

Da vi har valgt ikke at loade dine clips ind i "containere", bliver du nødt til at rykke ting og sager rundt i selve de clip der bliver loadet. Dvs. hvis du har en undermenu der ligger i 0x0 i clippet skal det rykket til f.eks. 10x150 for at få det til at passe når det bliver loadet ind i "hovedfilen".

c",)
Avatar billede angelhot Nybegynder
26. oktober 2004 - 12:24 #27
og lige en ting mere. Du siger, at jeg skal side den kode på de knapper, som ikke har en undermenu. Hvordan skal det skrives ind i koden for de movie clip, når det ser sådan her ud.

knap_array = new Array();
allOff = function () { var len = knap_array.length;for (var i = 0; i<len; i++) {this[knap_array[i]].gotoAndStop(1);this[knap_array[i]].down = false;}};
newButtonDef = function (name, method, value, target) { this[name].onRollOver = function() {if (!this.down) {this.gotoAndStop(2);}};this[name].onRollOut = function() {if (!this.down) {this.gotoAndPlay(4);}};this[name].onPress = function() {allOff();this.gotoAndStop(3);this.down = true;};if (method == 0) {this[name].onRelease = function() {gotoAndPlay(value);};}if (method == 1) {this[name].onRelease = function() {gotoAndStop(value);};}if (method == 2 && isNaN(target)) {this[name].onRelease = function() {loadMovie(value, target);};} else if (method == 2) {this[name].onRelease = function() {loadMovieNum(value, target);};}if (method == 3) {this[name].onRelease = function() {getURL(value, target);};}knap_array.push(name);};
newButtonDef("forside", 1, "unknown");
newButtonDef("nyheder", 1, "unknown");
newButtonDef("profil", 1, 153);
newButtonDef("showcase", 1, 154);
newButtonDef("referencer", 1, "unknown");
newButtonDef("tutorials", 1, 155);
newButtonDef("kontakt", 1, "unknown");
newButtonDef("links", 1, "unknown");
newButtonDef("forum", 1, "unknown");
newButtonDef("gæstebog", 1, "unknown");
Avatar billede angelhot Nybegynder
26. oktober 2004 - 12:28 #28
hmm, så det du siger er altså, at eksempelvis i selve "livsforlob.fla" skal jeg f.eks. rykke den til 10x150 og det skal ikke ordnes på selve hovedsiden?
Avatar billede angelhot Nybegynder
26. oktober 2004 - 12:31 #29
har forstået det nu med det sidste jeg skrev.. nu er det bare selve koden til de andre knapper, som er problemet og forhåbentlig det sidste :)
Avatar billede le_bon Nybegynder
26. oktober 2004 - 12:36 #30
Uhh-ha, den slags med functions osv. er ikke min stærke side. Men jeg er sikker på at pyroman kan gennemskue den slags. Han er langt skarpere i Action Script end mig. - Så lad os samstemmigt råbe et højt:

PY-RO-MAAAAN!!! HJÆÆLP!!  :D

- Så tror jeg han dukker op om ikke så længe...
Avatar billede angelhot Nybegynder
26. oktober 2004 - 12:45 #31
Sådan. Nu skulle det være mere overskueligt.

knap_array = new Array();
allOff = function () {
    var len = knap_array.length;
    for (var i = 0; i<len; i++) {
        this[knap_array[i]].gotoAndStop(1);
        this[knap_array[i]].down = false;
    }
};
newButtonDef = function (name, method, value, target) {
    this[name].onRollOver = function() {
        if (!this.down) {
            this.gotoAndStop(2);
        }
    };
    this[name].onRollOut = function() {
        if (!this.down) {
            this.gotoAndPlay(4);
        }
    };
    this[name].onPress = function() {
        allOff();
        this.gotoAndStop(3);
        this.down = true;
    };
    if(method == 0){
        this[name].onRelease = function() {
            gotoAndPlay(value);
        }
    }
    if(method == 1){
        this[name].onRelease = function() {
            gotoAndStop(value);
        }
    }
    if(method == 2 && isNaN(target)){
        this[name].onRelease = function() {
            loadMovie(value, target);
        }
    }else if(method == 2){
        this[name].onRelease = function() {
            loadMovieNum(value, target);
        }
    }
    if(method == 3){
        this[name].onRelease = function() {
            getURL(value, target);
        }
    }
    knap_array.push(name);
};
newButtonDef("forside", 1, "unknown");
newButtonDef("nyheder", 1, "unknown");
newButtonDef("profil", 1, 153);
newButtonDef("showcase", 1, 154);
newButtonDef("referencer", 1, "unknown");
newButtonDef("tutorials", 1, 155);
newButtonDef("kontakt", 1, "unknown");
newButtonDef("links", 1, "unknown");
newButtonDef("forum", 1, "unknown");
newButtonDef("gæstebog", 1, "unknown");
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