Avatar billede iceb1977 Nybegynder
13. juni 2002 - 17:13 Der er 12 kommentarer og
1 løsning

Kommentarer ?????????

Hej Eksperter

Jeg har fået hjælp til at lave et flash modul

i flash mx som henter en tekst fra en asp side

som asp siden henter i en database....

Dernæst henter den en variabel der i en anden asp

side der så bestemmer hvor mange billeder den så

skal vise.....

Dernæst lægger den et link på hvert billede....

Jeg vil gerne have sadt nogle flere kommantarer på

den sådan jeg kan se alt den gør og ikke kun

noget af det som det er nu ....

Hvis nogle af disse linier i koden er overflødige

må det også godt blive påpeget ...

På forhånd tak

iceb1977


KODEN der er et framescript på frame 5 :


stop();
System.useCodepage = true;
MCP = MovieClip.prototype;
MCP.oldEmpty = MCP.createEmptyMovieClip;
MCP.createEmptyMovieClip = function(name,depth,argsObj){
var m = this.oldEmpty(name,depth);
for(var z in argsObj){
m[z] = argsObj[z];
}
return m;
}

cntFoto=_level0.antalbilleder;
trace(Number(cntFoto)+1);
for (i=1; i<(_root.antalbilleder); i++) {
ASSetPropFlags(MCP,["oldEmpty"],i);
createEmptyMovieClip("pic"+i, i, {_x:180, _y:((i*60)-22),strObj:i}).createEmptyMovieclip("inside"+i,i+1).loadMovie("image"+i+".jpg");
eval("pic"+i)._xscale = 20;
eval("pic"+i)._yscale = 20;
// Her linkes der til det enkelte billede
eval("pic"+i).onRelease = function () {
getURL("http://www.iceb.ljnet.dk/flash/dyn.asp?pic=image"+this.strObj+".jpg","_blank");
}

// Her oprettes et tekstfelt
this.createTextField("tooltip"+i, 333+i, 100, ((i*60)-12), 150, 50);
with(eval("tooltip"+i))
{
autoSize = "left";
// border = true;
//borderColor = 0x000000;
text = eval("produktnavn"+i);
}
}

Avatar billede barklund Nybegynder
13. juni 2002 - 17:52 #1
Har du hentet den præcis som ovenstående? Jeg betvivler, at

ASSetPropFlags(MCP,["oldEmpty"],i);

Altid har heddet sådan. Det er en fejl og vil give fatale følger! Vend lige tilbage, så skal jeg nok kommentere det hele bagefter...
Avatar billede iceb1977 Nybegynder
13. juni 2002 - 18:01 #2
ja jeg har kopieret det fra min fla fil ......

og det kører som det skal...
Avatar billede barklund Nybegynder
13. juni 2002 - 18:06 #3
prøv efter din kode at lave en:

for (z in _root) trace("_root."+z+" = "+_root[z]);

Får du en [function] i blandt dem?
Avatar billede iceb1977 Nybegynder
13. juni 2002 - 18:53 #4
iblandt hvorfor nogen ?

to sek lægger lige min fla fil ud så du kan hente den ned ......
Avatar billede iceb1977 Nybegynder
13. juni 2002 - 18:55 #5
http://iceb.ljnet.dk/flash/photo_click.fla

hent fla filen her ........
Avatar billede barklund Nybegynder
13. juni 2002 - 19:35 #6
Her er den med kommentarer:

//stop filmen
stop();

//Brug styresystemets egen codepage - tegnhåndtering
//Filmen kan hermed kende alle de specialtegn, som styresystemets valgte sprog kender
System.useCodepage = true;

//opret en ny reference til funktionen createEmptyMovieClip()
MovieClip.prototype.oldEmpty = MovieClip.prototype.createEmptyMovieClip;

//start ny definition af den ellers foruddefinerede createEmptyMovieClip()
MovieClip.prototype.createEmptyMovieClip = function(name, depth, argsObj) {
   
    //start med først at lave et nyt movieclip via den "gamle" createEmptyMovieClip()
    var m = this.oldEmpty(name, depth);
   
    //kopier alle variabler fra argsObj dette nye movieclip.
    //
    //dette gør det muligt at oprette et nyt movieclip med foruddefinerede properties som fx:
    //  createEmptyMovieClip("navn",level,{_x=10,_y=20});
    //der automatisk placerer det nye movieclip
    for (var z in argsObj) {
        m[z] = argsObj[z];
    }
   
    //returnér en reference til det nye movieclip
    return m;
};

//skjul den midlertidige funktion oldEmpty(), så den ikke kan ses ved en "List Variables"
ASSetPropFlags(MovieClip.prototype, "oldEmpty",7);

//her var noget trace, men det er unødvendigt
//cntFoto=_level0.antalbilleder;
//trace(Number(cntFoto)+1);

//lad i gå fra 1 til værdien af "antalbilleder"
for (i=1; i<(_root.antalbilleder); i++) {
   
    //det følgende er ensbetydende med:
    //
    //mc = _root.createEmptyMovieClip("pic"+i, i, {_x:180, _y:((i*60)-22), strObj:i});
    //mc = mc.createEmptyMovieclip("inside"+i, i+1);
    //mc.loadMovie("image"+i+".jpg");
    //
    //men da createEmptyMovieClip netop returnerer en ref til det nye clip, så kan det skrives i en lang smuk streng linie kode :o)
    createEmptyMovieClip("pic"+i, i, {_x:180, _y:((i*60)-22), strObj:i}).createEmptyMovieclip("inside"+i, i+1).loadMovie("image"+i+".jpg");
   
    //sæt _xscale og _yscale i movieclippet _root["pic"+i]
    //kunne også være gjort via den første createEmptyMovieClip herover, hvilket så var blevet til:
    //reateEmptyMovieClip("pic"+i, i, {_x:180, _y:((i*60)-22), strObj:i, _xscale:20, _yscale:20}).createEmptyMovieclip("inside"+i, i+1).loadMovie("image"+i+".jpg");
    eval("pic"+i)._xscale = 20;
    eval("pic"+i)._yscale = 20;
   
    // Her linkes der til det enkelte billede
    //der defineres funktionen onRelease på det yderste movieclip, som indeholder billedet.
    eval("pic"+i).onRelease = function() {
       
        //funktionen skal åbne filen beskrevet i et nyt browservindue
        getURL("http://www.iceb.ljnet.dk/flash/dyn.asp?pic=image"+this.strObj+".jpg", "_blank");
    };
   
    // Her oprettes et tekstfelt
    //det har navnet "tooltip"+i, level=333+i,
    //x-positionen=100, y-positionen=((i*60)-12)
    //bredde = 150, højde = 50;
    this.createTextField("tooltip"+i, 333+i, 100, ((i*60)-12), 150, 50);
   
    //Inden i dette tekstfelt skal der sættes nogle variabler:
    with (eval("tooltip"+i)) {
        autoSize = "left";       
        //teksten indeholdt i tekstfeltet skal være variablen "produktnavn"+i
        text = eval("produktnavn"+i);
    }
}

/Barklund
Avatar billede barklund Nybegynder
13. juni 2002 - 19:37 #7
Faktisk er der ingen grund til, at alle "inside"-movieclips'ne har forskellige navne... create-linien kunne med fordel skrives som:

createEmptyMovieClip("pic"+i, i, {_x:180, _y:((i*60)-22), strObj:i, _xscale:20, _yscale:20}).createEmptyMovieclip("inside", i+1).loadMovie("image"+i+".jpg");
Avatar billede barklund Nybegynder
13. juni 2002 - 19:38 #8
Dette skyldes, at opbygningen er således, at der i _root defineres x antal movieclips, hvert indeholdende 1 "inside"-cliå med et billede i. Disse indre movieclips ligger da i hver sit over-movieclip og kan derfor sagtens have samme navn... :o)
Avatar billede iceb1977 Nybegynder
13. juni 2002 - 20:10 #9
ok jeg tager nok det her ud .....

//cntFoto=_level0.antalbilleder;
//trace(Number(cntFoto)+1);

Men det ser ret uoverskueligt ud synes jeg .....

Kan du skrive en forklaring af koden sepereret fra selve koden....

Sådan en slags algoritme beskrivelse...

EKS:

stop filmen
sæt kodesiden til at bruge den samme som det pågældende system...
osv osv .....
Avatar billede iceb1977 Nybegynder
13. juni 2002 - 21:09 #10
eval << hvad bruger dette til ?

autoSize = "left";        <<< og den her hvad gør den ?
Avatar billede micsmi Nybegynder
16. juni 2002 - 11:14 #11
Måske dette spørgsmål skulle lukkes....Iørvigt har du 2 spørgsmål åben med sammen indhold..

1. http://www.eksperten.dk/spm/224763
2. http://www.eksperten.dk/spm/224119

Samme spørgsmål med sammen indhold...hmmm, et af spørgsmålene burde blive lukket.

//Simonth
Avatar billede iceb1977 Nybegynder
16. juni 2002 - 12:21 #12
ja ok lukker ........

men fik ikke mit svar så henviser til det andet ....
Avatar billede iceb1977 Nybegynder
16. juni 2002 - 12:21 #13
Lukket
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