Avatar billede mvk Nybegynder
04. marts 2003 - 23:26 Der er 30 kommentarer og
1 løsning

Dynamiske billeder og tekst

jeg har brug for lidt hjælp til at lave den færdig...

http://www.eksperten.dk/spm/308206

jeg prøver at have en frem og tilbage knap hvorpå man kan bladre i en række billeder. billederne og teksterne skal kunne defineres fra en ekstern fil som loades ind i en billedeholder og dynamiske tekstfelter.

Tak!
Avatar billede pyroman Nybegynder
05. marts 2003 - 11:59 #1
Du kan hente jpg-billeder ind i flash med loadMovie og du kan hente tekst ra en txt-fil eller et serversidescript med database eller et xml-script. Du kan starte med at hente hvert billede ind i et MC som ligger i forskellige levels.

_root.mitMC1.loadMovieNum("billede1.jpg");
_root.mitMC2.loadMovieNum("billede2.jpg");
osv...

På hvert MC skal der stå

onClipEvent(load){
  this.swapDepth(1, 2, 3 osv...)
}

Du kan så hente teksterne ind i roden fra en txt-fil. I txt filen skal der så stå:

text1="blabla"&text2="blabla"&text3="blabla"

I flash kriver du i første frame i roden (i skal være antallet af billeder, her 10):

i = 10;
loadVariables("minfil.txt", 0);

Derudover laver du et dynamisk tekstfelt med variablen "text".

Du laver to knapper:

næste billede:

on(release){
  i++;
  if(i>10){
    i = 1;
  }
  _root.["mitMC"+i].swapDepth(10);
  _root.text = eval("text"+i);
}

På sidste billede knappen:

on(release){
  i--;
  if(i>10){
    i = 1;
  }
  _root.["mitMC"+i].swapDepth(10);
  _root.text = eval("text"+i);
}

Jeg håber det skulle kunne gøre det...
(Jeg har ikke kigget så meget på linket, så jeg ved ikke om du kan bruge dette her)

/Filip
Avatar billede mvk Nybegynder
05. marts 2003 - 12:10 #2
sounds good
men jeg har brug for en løsning hvor jeg kan definere billedenavnet sammen med teksten i txt filen
Avatar billede pyroman Nybegynder
05. marts 2003 - 20:50 #3
Jeg har læst det andet spm igennem nu og forstår at du gerne vil have oplysninger som størrelse, type osv... og i 3 tekstfelter. Dette kan gøres på en del måder fx ved at lave flere variabler eller samle alle oplysningerne i én streng og så dele den op i flash:

text1="navn#størrelse#beskrivelse"&text2="navn#størrelse#beskrivelse"&text3="navn#størrelse#beskrivelse" osv.

I flashen henter du dem ind med loadVariables som tidligere beskrevet.

På knapperne hvor der står "_root.text = eval("text"+i);" skal dette erstattes med dette script:

_root.textArray = eval("text"+i).split("#");
_root.imgname = _root.textArea[1];
_root.imgsize = _root.textArea[2];
_root.imgdescription = _root.textArea[3];

Og så burde du have 3 tekstfelter med forskellige informationer i...
Avatar billede mvk Nybegynder
18. marts 2003 - 11:23 #4
Filip - kan det ikke struktureres således mht billederne at jeg kan hente dem (filnavnet)ind fra min .txt fil ?

eks:
tekstfelt1=Tekst1&tekstfelt2=Tekst2&tekstfelt3=Tekst3&billedeholder=image1.jpg

så at den loader tekstinformationer og billedet ind ?
jeg ville helst undgå at skulle opdatere i flash når der skal 1 nyt billede på.
Avatar billede mvk Nybegynder
21. marts 2003 - 10:34 #5
jeg får denne fejl:
Scene=Scene 1, Layer=Layer 1, Frame=1: Line 6: Expected a field name after '.' operator.
      _root.["imageHolder"+i].swapDepth(10);

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 6: Expected a field name after '.' operator.
      _root.["imageHolder"+i].swapDepth(10);
Avatar billede mvk Nybegynder
21. marts 2003 - 11:18 #6
Filip vil du tage et kig på http://www.fzy.dk/artragous/imagegallery.html
der hae jeg fået den til at loade billeder, men teksterne bliver henter fra et array inde i fla-en. Jeg vil gerne se om man kan lave følgende ændringer:

1. tekster loades eksternt
2. undgå definition af antal billeder. så når der ikke er flere i rækken tager en bare nr 1 igen. ellers skal man rette i fla´en hver gang der kommer et nyt billede.

vil du kigge på det ?
eller skal jeg oprette et nyt

:)
mvk
Avatar billede mvk Nybegynder
21. marts 2003 - 11:36 #7
3. preloaderen stinker :)
Avatar billede pyroman Nybegynder
25. marts 2003 - 11:17 #8
Arghh!!! Hvor er mit indlæg??
Avatar billede mvk Nybegynder
25. marts 2003 - 11:32 #9
ja - jeg sad også og ledte efter det...
Avatar billede mvk Nybegynder
25. marts 2003 - 11:36 #10
damn
Avatar billede mvk Nybegynder
25. marts 2003 - 11:44 #11
du havde lavet et indlæg i går ikke ?
Avatar billede pyroman Nybegynder
25. marts 2003 - 16:12 #12
Jo jeg havde lavet et langt ét - lige inden jeg sendte mailen...
Avatar billede pyroman Nybegynder
25. marts 2003 - 16:12 #13
laver et nyt (suk)
Avatar billede mvk Nybegynder
26. marts 2003 - 09:44 #14
strange - det er ikke første gang jeg har oplevet at et indlæg bliver "væk"
tak pyromaniac :)
Avatar billede pyroman Nybegynder
26. marts 2003 - 21:24 #15
Neeeeeeeeeej - det sker ikke for Lars Krimi!!!!! Mit nye indlæg blev *#%€&?^¨! også væk!! Og jeg havde tjekket at jeg kunne se det og refreshede siden og kunne stadig se det!!! Hvad sker der for eksperten?

Men bare rolig, jeg havde en anelse om at det kunne ske igen, så jeg kopierede scriptet ind i et word-dokument - finder det frem og laver et nyt indlæg...
Avatar billede pyroman Nybegynder
26. marts 2003 - 21:27 #16
Okay kan stadig se mit forrige indlæg... Nu kommer mit script (krydser fingre):

I din tekstfil:

imgtext1=name#info#description&imgtext2=name#info#description&imgtext3= ...osv


I din flash laver du et tomt mc til variablerne, med instancenavnet "data" og et tomt MC til at indeholde billeder med instancenavnet "pictures";

på "data":

onClipEvent(load){
  this.loadVariables("textFil.txt");
  used = false;
  _root.imgNum = 1;
  _root.maxNum = 1;
}
onClipEvent(enterFrame){
  if(this.getBytesLoaded() == this.getBytesTotal() and !used){
    used = true;
    while(this["imgtext"+_root.imgNum] != ""){
      this["imgtext"+_root.imgNum] = this["imgtext"+_root.imgNum].split("#");
      _root.imgNum++;
      _root.maxNum++;
    }
  }
}


På "picture" mc’et:

onClipEvent(load){
  this.loadMovie("billede"+_root.imgNum+".jpg");
}
onClipEvent(enterFrame){
  totalBytes = this.getBytesTotal();
  loadedBytes = this.getBytesLoaded();
  loadedPercent = Math.round(loadedBytes/totalBytes*100);
  if(loadedPercent == 100 && _width > 0){
    _root.nameBox = _root.data["imgtext"+_root.imgNum+"[0]"];
    _root.infoBox = _root.data["imgtext"+_root.imgNum+"[1]"];
    _root.descriptionBox = _root.data["imgtext"+_root.imgNum+"[2]"];
  }
}


På tilbage-knappen:

on(release){
  _root.imgNum--;
  if(_root.imgNum<1){
    _root.imgNum = _root.maxNum;
  }
  _root.pictures.loadMovie("billede"+-root.imgNum+".jpg");
  _root.nameBox = "";
  _root.infoBox = "";
  _root.descriptionBox = "";
}


På frem-knappen:

on(release){
  _root.imgNum+;
  if(_root.imgNum>_root.maxNum){
    _root.imgNum = 1;
  }
  _root.pictures.loadMovie("billede"+-root.imgNum+".jpg");
  _root.nameBox = "";
  _root.infoBox = "";
  _root.descriptionBox = "";
}

Kan dette ses?
Avatar billede pyroman Nybegynder
26. marts 2003 - 21:31 #17
Juhuuuuuuu :o) Jeg kan stadig se indægget!!!!
Avatar billede mvk Nybegynder
26. marts 2003 - 23:11 #18
hehe - fedt Filip - tak
men Flash brokker sig - siger at "a script is causing Flash playing to run slowly. do u want to end this script."
jeg har ændret 1 linie .- frem knap linie 2 til ++
Avatar billede mvk Nybegynder
26. marts 2003 - 23:13 #19
jeg har også ændret:
_root.pictures.loadMovie("billede"+-root.imgNum+".jpg");
til
_ foran root
Avatar billede mvk Nybegynder
26. marts 2003 - 23:19 #20
jeg skal smide de tre teksterfelter i roden ikke ?
nameBox
infoBox
descriptionBox
Avatar billede pyroman Nybegynder
27. marts 2003 - 13:58 #21
Jo det kan godt være at jeg har lavet et par tastefejl. Den fejl med scriptet, tror jeg har noget at gøre med while-løkken på data MC'et, jeg prøver lige at teste det i flash...
Avatar billede mvk Nybegynder
27. marts 2003 - 14:01 #22
fedt Filip - tak
Avatar billede pyroman Nybegynder
28. marts 2003 - 16:57 #23
Okay jeg har fået det til at virke, men det driller lidt når jeg henter billederne ind med mc.loadMovie - så kan jeg ikke se billederne, men det kan være du kan få det til at virke. Her kommer scriptet i hvert fald:

tekstfilen skal se ud som før (variablerne skal starte med 0, det samme gælder for billednavnene som skal hedde "billede1", "billede2" 3 osv..)

På "data" som lige skal omdøbes til "datas":

onClipEvent(load){
  this.loadVariables("tekstFil.txt");
  _root.imgNum = 0;
  _root.maxNum = 0;
}
onClipEvent(data){
  if(this.getBytesLoaded() == this.getBytesTotal()){
    for(name in this){
      this["imgtext"+_root.maxNum] = this["imgtext"+_root.maxNum].split("#");
      _root.maxNum++;
    }
    _root.maxNum -= 1;
  }
}


På "pictures":

onClipEvent(load){
  this.loadMovie("billede1.jpg");
}
onClipEvent(enterFrame){
  totalBytes = this.getBytesTotal();
  loadedBytes = this.getBytesLoaded();
  loadedPercent = Math.round(loadedBytes/totalByes*100);
  if(loadedPercent == 100 && _width > 0){
    _root.nameBox = _root.data["imgtext"+_root.imgNum][0];
    _root.infoBox = _root.data["imgtext"+_root.imgNum][1];
    _root.descriptionBox = _root.data["imgtext"+_root.imgNum][2];
  }
}

På tilbage-knappen

on(release){
  _root.imgNum--;
  if(_root.imgNum < 0){
    _root.imgNum = _root.maxNum;
  }
  _root.pictures.loadMovie("billede"+_root.imgNum+".jpg");
  _root.nameBox = "";
  _root.infoBox = "";
  _root.descriptionBox = "";
}

På frem-knappen

on(release){
  _root.imgNum+;
  if(_root.imgNum > _root.maxNum){
    _root.imgNum = 0;
  }
  _root.pictures.loadMovie("billede"+_root.imgNum+".jpg");
  _root.nameBox = "";
  _root.infoBox = "";
  _root.descriptionBox = "";
}

Det burde hjælpe - bortset fra at jeg ikke kunne se mine billeder? - kun hvis jeg loader dem ind i levels!
Avatar billede mvk Nybegynder
10. april 2003 - 11:41 #24
Filip - jeg kan slet ikke få det til at virke :(
Avatar billede mvk Nybegynder
10. april 2003 - 11:45 #25
hverken teksterne eller billederne kommer ind.
Avatar billede pyroman Nybegynder
11. april 2003 - 21:30 #26
Okay jeg har fundet ud af hvorfor jeg heller ikke kunne se billederne... Man kan åbenbart ikke hente et billede ind i det MC, hvor koden står.
Har ændret scriptet lidt:

frame 1:

imgVars = new LoadVars();
imgVars.load("images.txt");
imgNum = 0;
maxNum = 0;
imgVars.onLoad = function() {
  for (name in this) {
    if (name != "onLoad") {
      this["imgtext"+_root.maxNum] = this["imgtext"+_root.maxNum].split("#");
      _root.maxNum++;
    }
  }
  maxNum -= 1;
};
pictures.loadMovie("billede0.jpg");


3. frame

gotoAndPlay(2);



på "pictures":

onClipEvent (enterFrame) {
  totalBytes = this.getBytesTotal();
  loadedBytes = this.getBytesLoaded();
  loadedPercent = Math.round(loadedBytes/totalBytes*100);
  if (loadedPercent == 100 && _width>0) {
    _root.nameBox = _root.imgVars["imgtext"+_root.imgNum][0];
    _root.infoBox = _root.imgVars["imgtext"+_root.imgNum][1];
    _root.descriptionBox = _root.imgVars["imgtext"+_root.imgNum][2];
  }
}

Du skal ikke ændre noget på knapperne og du kan godt slette MC'et "datas".
Det virker hos mig, så ikke noget brok vel! :)
Avatar billede mvk Nybegynder
13. april 2003 - 11:27 #27
hehe - tak Filip :) - nu spiser jeg lige en skål havregryn - så sætter jeg mig ned og prøver
Avatar billede mvk Nybegynder
13. april 2003 - 12:02 #28
stener! - mig altså
.
nu har jeg to ting i mit library en invisible button til frem/tilbage og et tomt MC der hedder pictures.

på min stage har jeg:
de tre tekstfelter (nameBox, infoBox, descriptionBox)
frem og tilbage knap med actions som fra 28/03-2003 16:57:03
pictures MC med actions fra 11/04-2003 21:30:42

i modsætning til tidligere har min movie nu 3 frames.
i første frame i actionslayer står det "frame 1:"
anden frame er blank
tredje frame har "gotoAndPlay(2);"

jeg får intet ind i filmen, hverken info fra tekstfil eller billeder
Avatar billede mvk Nybegynder
13. april 2003 - 12:09 #29
NEVERMIND - det virker nu :) - jubiiiiiiiiiiii
.
Filip - tusinde tak fordi du har gidet holde ud al denne tid
u the flashy-man!
.
nej en lettelse at få den færdig - når jeg sidder og kigger scriptet igennem går det op for mig hvor blæret det er. virkelig cool
.
jeg må ud på it-højskolen og kigge efter et hardcore actionscript kursus. :)
Avatar billede pyroman Nybegynder
14. april 2003 - 15:46 #30
Nå jeg havde så mange eksperten mail i min inbox at jeg ikke kunne overskue det så jeg havde slet ikke set at du var kommet med en ny kommentar... jamen det var så lidt - her er et svar! :)
Avatar billede mvk Nybegynder
01. maj 2003 - 19:31 #31
undskyld - jeg havde glemt at give point
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