Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-06-2005, 10:06   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 11
positionierung attachMovie

Erstmal hallo alle zusammen.
Bin noch ganz neu hier und muss sagen top forum.

Ich häng seit gestern an nem Problem, welches ich einfach nicht gelöst bekomm.
Folgende Grundlage:
ich hab ein Array(bilder_namen) mit der länge x. In diesem Array befinden sich ausschließlich bildbezeichungen auf deren Bezeichung ich keinen einfluss habe(z.b. BildAr01.jpg, usw.)
Bei den Bildern handelt es sich um thumbnails welche nun mittels attachMovie in einen button geladen werden. Das ist alles kein Problem. Mein problem ist eher mathematischer Natur. Und zwar werden über folgende Funktion die buttons erstellt.
ActionScript:
  1. function attach_images() {
  2.     for (i=0; i<(bilder_namen.length); i++) {
  3.         _root.img_clip.attachMovie("img_button", bilder_namen[i], i);
  4.         _root.img_clip[bilder_namen[i]]._x = 80*h;
  5.         _root.img_clip[bilder_namen[i]].onRelease = function() {
  6.             loadMovie("bilder/portfolio/"+ordner+"/images/"+this._name, "bild_clip");
  7.             show_image(this._name);
  8.         };
  9.     }
  10. }
Das funktioniert so auch alles wunderbar und ohne Probleme. Nur wenn ich die Bilder so anordne hab ich halt eine linie mit buttons mit dem abstand von 80px. Was auch alles völlig ok ist. das Problem ist nur die Bilder müssten nach folgendem Schema positioniert werden.

0 1 2 9 10 11 18 19...
3 4 5 12 13 14
6 7 8 15 16 17

usw. sprich immer die ersten neun bilder in einem 3x3 block. der abstand aller bilder sollte jeweils x=80 und y=50 betragen. Der knackpunkt für mein kleines hirn ist grade die positionierung. da ich ja nicht in der for-schleife (wie in der funktion oben) immer einfach mit i multiplizieren kann, da sonst ja spätestens beim neuten element des Arrays (bild9) die x_position ins unermessliche steigt.
Hoffe jemand hat ne idee oder nen guten Lösungsansatz.

Bin für jede Hilfe dankbar.

greetz

Geändert von flashfreak0711 (15-06-2005 um 10:09 Uhr)
flashfreak0711 ist offline   Mit Zitat antworten
Alt 15-06-2005, 10:53   #2 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
Du musst auch _y anpassen...

Vereinfacht, und ungetestet würde ich es so machen:
ActionScript:
  1. j=1;
  2. off = 0;
  3. k=1;
  4. for (i=1;i<=x;i++)
  5. {
  6.  // Positionierung
  7.  _x = off + k*80;
  8.  _y = j * 50;
  9.  // Neue Zeile?
  10.  if (i%3==0) {
  11.   k=1;
  12.   j=1;
  13.  }
  14.  else
  15.  {
  16.   j++;
  17.  }
  18.  // Neuer Block?
  19.  if (i%9==0) {
  20.   off = off + (3*80);
  21.  }
  22. }
Zur Erklärung:
- alle 3 Bilder eine neue Zeile (j wird erhöht)
- alle 9 Bilder ein neuer Block (off wird erhöht)
__________________
Grüße,
solo

Die Antwort auf fast alle Fragen gibt es hier: AS-Referenz
Weitere Fehlerquellen sind:
Flasche Pfadangeben oder falsch versorgte Variablen. Beides kann man gut hiermit überprüfen.
Und den Debugger gibts ja auch noch :)
soloFlash ist offline   Mit Zitat antworten
Alt 15-06-2005, 11:22   #3 (permalink)
Hobbydenker
 
Benutzerbild von oppec
 
Registriert seit: Feb 2003
Beiträge: 182
boa da hab ich fast auch einen gehirnkrampf bekommen.
funktioniert glaub ich aber so, wie do es haben wolltest
Angehängte Dateien
Dateityp: rar bloecke.rar (5,0 KB, 6x aufgerufen)
__________________
...steht gern auf Schläuchen
oppec ist offline   Mit Zitat antworten
Alt 15-06-2005, 16:00   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 11
Hi und danke für die Tips,

hab für meine zwecke bisschen was anpassen müssen aber jetzt gehts wunderbar

hier noch mein fertiges script wo auch gleich der Remove mit dabei ist falls man neue Bilder attachen will:
ActionScript:
  1. abs_hori = 80;
  2. abs_vert = 0;
  3. zusatz = 0;
  4. loader._visible = false;
  5.  
  6. function removeOld(){
  7.  
  8.     for(r=1;r<(bilder_namen_old.length);r++){
  9.         _root.img_clip[bilder_namen_old[r-1]].removeMovieClip();
  10.     }
  11.     abs_hori = 80;
  12.     abs_vert = 0;
  13.     zusatz = 0;
  14.     attach_images()
  15. }
  16.  
  17. function attach_images() {
  18.     for (h=1; h<(bilder_namen.length); h++) {
  19.         _root.img_clip.attachMovie("all_thumbs", bilder_namen[h-1], h);
  20.         if(abs_vert == 165){
  21.             abs_vert = 0;
  22.         }
  23.         _root.img_clip[bilder_namen[h-1]]._y = abs_vert;
  24.         _root.img_clip[bilder_namen[h-1]]._x = abs_hori+(250*zusatz);
  25.         _root.img_clip[bilder_namen[h-1]].thumbs_inside.loadMovie("bilder/portfolio/"+ordner+"/thumbs/"+[bilder_namen[h-1]]);
  26.  
  27.         abs_hori += 80;
  28.         if(h%3 == 0){
  29.             abs_vert += 55;
  30.             abs_hori = 80;
  31.         }
  32.         if(h%9 == 0){
  33.             ++zusatz;
  34.         }
  35.         _root.img_clip[bilder_namen[h-1]].onRelease = function() {
  36.             bild_clip.loadMovie("bilder/portfolio/"+ordner+"/images/"+this._name);
  37.             ladestatus();
  38.             show_image(abs_vert);
  39.         };
  40.     }
  41. }
  42. ladestatus = function () {
  43.     loader.onEnterFrame = function() {
  44.         geladen = _root.bild_clip.getBytesLoaded();
  45.         zuladen = _root.bild_clip.getBytesTotal();
  46.         if (geladen>=10) {
  47.             loader._visible = true;
  48.             prozent = Math.round(geladen/zuladen*100);
  49.             this.prozentanzeige.text = prozent+" %";
  50.             this.balken._xscale = prozent;
  51.             if (prozent>=100) {
  52.                 delete this.onEnterFrame;
  53.                 this._visible = false;
  54.             }
  55.         }
  56.     };
  57. };

Geändert von flashfreak0711 (15-06-2005 um 16:02 Uhr)
flashfreak0711 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:15 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele