Avatar billede reptil Nybegynder
23. marts 2005 - 01:11 Der er 6 kommentarer

alpha transition mellem load af dynamiske billeder

Jeg ville gerne kunne lave overgangen på billedskiftene i mit galleri lidt mere lækre, så de ikke bliver så statiske, som de er på de fleste dynamiske flash sider.
Men hvordan ser koden ud?
Det må være noget med _alpha channel = 10++ eller sådan noget, jeg kan ikke lige gennemskue det?
Når man klikker på knappen loader der en ekstern swf.fil ind i et moveclip, som ligger i main filen. Denne eksterne swf.fil loader diverse jpg billeder ind i et MC som ligger i dens egen timeline ved hjælp af loadClip funktionen.
Her er der også en frem og tilbage knap, så man kan bladre i billederne.
Her er det så jeg gerne vil have at der kommer en eksempelvis alpha channel funktion, sådan at billederne fader frem.
Måske er det en onClipEvent jeg skal bruge???????
Avatar billede alexander_j Nybegynder
23. marts 2005 - 09:54 #1
Jeg er ikke 100% sikker på hvad du mener - er det noget i stil med det jeg har lavet i nederste højre hjørne på denne side: http://www.sofiamanning.com - altså bare hvor skiftet sker via knapper i stedet for automatisk?

I forslaget herunder er alt for nemheds skyld laves i actionscript(selv knapperne), men store dele af det kunne lige så godt laves manuelt.
I eksemplet har jeg 5 billeder (kaldet pic1.jpg, pic2.jpg ...) i samme størrelse og placeret i samme mappe, hvor jeg har lagt flashen.

Kode:
var d=0, pic=1;
//Laver to movieclips til billederne og placere præcist det samme sted! Dette kunne også laves manuelt!
this.createEmptyMovieClip("picture2",d++);this.picture2.createEmptyMovieClip("pic",1);
this.createEmptyMovieClip("picture1",d++);this.picture1.createEmptyMovieClip("pic",1);
picture1._x = 125; picture2._x = picture1._x;
picture1._y = 25; picture2._y = picture1._y;
picture1.pic.loadMovie("pic1.jpg");

//Laver x antal knapper (5)! Dette kunne også laves manuelt!
for(i=0;i<5;i++){
    this.createEmptyMovieClip("knap"+i,d++);
    this["knap"+i].lineStyle(1,"0x000000",100);
    this["knap"+i].beginFill("0xff0000",100);
    this["knap"+i].moveTo(0,0);
    this["knap"+i].lineTo(50,0);
    this["knap"+i].lineTo(25,25);
    this["knap"+i].lineTo(0,0);
    this["knap"+i]._x = 50;
    this["knap"+i]._y = 25 + i*50;
    //Kode til knapperne Det er det her der er det vigtige
    this["knap"+i].id = i+1;
    this["knap"+i].onRelease = function(){
        if(pic==1) pic=2;
        else pic=1;
        picture1.swapDepths(picture2);
        this._parent["picture"+pic].pic.loadMovie("pic"+this.id+".jpg");
        this._parent["picture"+pic]._alpha = 0;
        this._parent["picture"+pic].onEnterFrame=function(){
            this._alpha += 2.5;
            if(this._alpha>=100) delete this.onEnterFrame;
        }
    }
}
Avatar billede reptil Nybegynder
23. marts 2005 - 10:42 #2
Hej alexander,
Jo det er lige noget i den stil,jeg tænkte på, men jeg har ikke en knap til hvert billede,jeg har kun en frem og tilbage knap - hvordan vil scriptet så se ud.?
og hvad gør jeg med preloader, så er man jo nærmest nødt til at have en preolader imellem hvert billede, eller er det muligt at lave en preloader, som kan regne ud hvor mange kb. der skal loades ialt, således at det første billede først kommer frem når alle billeder er loadet? ligesom hvis det bare var en ekstern swf.fil der blev loadet ind?
Avatar billede alexander_j Nybegynder
23. marts 2005 - 11:26 #3
Angående preloader, så har jeg personligt aldrig fået det til rigtig at virke på rå billeder - kun på swf-filer! Hvis billederne ikke er vildt store, så burde det heller ikke have den helt store betydning.

Eksempel:
var d=0, pic=1; picnr = 1;
//Laver to movieclips til billederne og placere præcist det samme sted! Dette kunne også laves manuelt!
this.createEmptyMovieClip("picture2",d++);this.picture2.createEmptyMovieClip("pic",1);
this.createEmptyMovieClip("picture1",d++);this.picture1.createEmptyMovieClip("pic",1);
picture1._x = 125; picture2._x = picture1._x;
picture1._y = 25; picture2._y = picture1._y;
picture1.pic.loadMovie("pic1.jpg");

//Laver knap til frem! Dette kunne også laves manuelt!
this.createEmptyMovieClip("knap1", d++);
knap1.lineStyle(1,"0x000000",100); knap1.beginFill("0xff0000",100); knap1.moveTo(0,0); knap1.lineTo(0,50); knap1.lineTo(25,25); knap1.lineTo(0,0); knap1.endFill();
knap1._x = 0; knap1._y = 0;
//Kode til knappen det er det der er det vigtige
knap1.onRelease = function(){
    if(pic==1) pic=2;
    else pic=1;
    picture1.swapDepths(picture2);
    picnr++;
    this._parent["picture"+pic].pic.loadMovie("pic"+picnr+".jpg");
    this._parent["picture"+pic]._alpha = 0;
    this._parent["picture"+pic].onEnterFrame=function(){
        this._alpha += 25;
        if(this._alpha>=100) delete this.onEnterFrame;
    }
}

//Laver knap til tilbage! Dette kunne også laves manuelt!
this.createEmptyMovieClip("knap2", d++);
knap2.lineStyle(1,"0x000000",100); knap2.beginFill("0xff0000",100); knap2.moveTo(25,0); knap2.lineTo(25,50); knap2.lineTo(0,25); knap2.lineTo(25,0); knap2.endFill();
knap2._x = 0; knap2._y = 50;
//Kode til knappen det er det der er det vigtige
knap2.onRelease = function(){
    if(pic==1) pic=2;
    else pic=1;
    picture1.swapDepths(picture2);
    picnr--;
    this._parent["picture"+pic].pic.loadMovie("pic"+picnr+".jpg");
    this._parent["picture"+pic]._alpha = 0;
    this._parent["picture"+pic].onEnterFrame=function(){
        this._alpha += 25;
        if(this._alpha>=100) delete this.onEnterFrame;
    }
}
Avatar billede le_bon Nybegynder
13. februar 2006 - 11:06 #4
Hey alexander_j, jeg hopper lige ind i tråden, for jeg sidder og fedter lidt med dit script (det sidste):

Kan det modificeres, således at når der klikkes på næste-knappen ved det sidste billede i folderen, starter galleriet forfra?
- Og hvordan angiver jeg hvormange billeder der er? - Lige nu står den jo som om der er uendelig mange billeder.

Mvh. le_bon (Skal nok lave nogle points til dig hvis du svarer)
Avatar billede le_bon Nybegynder
13. februar 2006 - 15:00 #5
alexander_j > Jeg fandt ud af det, så du behøver ikke svare på ovenstående spørgsmål.

c",)
Avatar billede alexander_j Nybegynder
13. februar 2006 - 16:42 #6
ok - men det kan være reptil har lyst til at lukke spørgsmålet - så fremt han har fået svar!
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