Avatar billede casm_ Nybegynder
06. januar 2002 - 16:43 Der er 18 kommentarer og
1 løsning

dulicate igen...(maybe lingoman, barklund)

Jeg fik afsluttet dette spm. lidt for hurtigt.
http://www.eksperten.dk/spm/151676

lingoman laver denne kode, men det er rigtigt den fucker op hvis movieclippet den skal duplicate er for stort..

spacing = 10;
rows = 12;
columns = 7;
for (j=0; j<rows; j++) {
      for (i=0; i<columns; i++) {
    k++;

    if (!(i == 0 && j == 0)) {
        duplicateMovieClip (\"original_mc\", \"kopi\"+k, k+1);
        this[\"kopi\"+k]._x = this[\"original_mc\"]._x+i*(this[\"original_mc\"]._width+spacing);
        this[\"kopi\"+k]._y = this[\"original_mc\"]._y+j*(this[\"original_mc\"]._height+spacing);
    }
        }
}
stop ();

så kommer barklunds forslag om at ligge actionen oven på movieclippet istedet...

onClipEvent(load) {
    if (_name eq \"original_mc\") {
        _root.vandret = 10 + _width;
        _root.lodret = 10 + _height;
        rows = 12;
        columns = 7;
        for (j=1; j<=rows; j++) {
            for (i=1; i<=columns; i++)
                this.duplicateMovieClip(\"kopi_\" add i add \"_\" add j, ++level);
        }
    } else {
        var s = _name.split(\"_\");
        /* s laver et array over navnet, som for
          eksempel kan være \"kopi_3_6\", der så
          bliver et array som [\"kopi\",\"3\",\"6\"]
        _x = _parent.original_mc._x + int(s[1])*_root.vandret;
        _y = _parent.original_mc._y + int(s[2])*_root.lodret;
    }
}


denne udgave virker ikke som til tænkt.......andreforslg??
Avatar billede casm_ Nybegynder
06. januar 2002 - 16:44 #1
jeg har afsluttet kommentaren i min movie */
Avatar billede gotcha Nybegynder
06. januar 2002 - 18:22 #2
Hvad er det, du prøver at lave? Et grid vha. to løkker?
Avatar billede gotcha Nybegynder
06. januar 2002 - 18:47 #3
I så fald kan du bruge følgende:

orgMC._visible = false;
   
numRows = 10; // Antallet af rækker
numCols = 10; // Antallet af kolonner

colSpace = 0; // Afstanden mellem objekterne i kolonnerne
rowSpace = 0; // Tilsvarende for rækkerne
   
stageWidth = 550; // Dimensionerne for dit arbejdsområde
stageHeight = 400;
startX = (stageWidth/2)-(numCols*colSpace)/2; // Dette gør, at dit grid er centreret omkring arbejdsområdet midte
startY = (stageHeight/2)-(numRows*rowSpace)/2; // Hvis du ikke ønsker dette, kan du bare angive nogle specifikke tal

for (var rowCount = 0; rowCount<numRows; rowCount++) {
    for (var colCount=0; colCount<numCols; colCount++) {
        duplicateMovieClip (\"orgMC\", \"Row\" add rowCount add \"Col\" add colCount, 100*rowCount+colCount);
        name = this[\"Row\" add rowCount add \"Col\" add colCount];
        name._x = startX+colCount*colSpace;
        name._y = startY+rowCount*rowSpace;
    }
}

Dette forudsætter selvfølgelig, at dit movie clip har instance-navnet orgMC :)

Mvh Morten
Avatar billede barklund Nybegynder
06. januar 2002 - 20:10 #4
Kan du forklare, hvorfor mit bud ikke virker? Er det fordi, at mc\'erne ikke placeres, hvor de skal...?

Så skyldes en mindre misforståelse, og skal rettes til:

onClipEvent(load) {
    if (_name eq \"original_mc\") {
        _root.vandret = 10 + _width;
        _root.lodret = 10 + _height;
        rows = 12;
        columns = 7;
        for (j=0; j<rows; j++) {
            for (i=0; i<columns; i++) {
                if (j && i)
                    this.duplicateMovieClip(\"kopi_\" add i add \"_\" add j, ++level);
            }
        }
    } else {
        var s = _name.split(\"_\");
        /* s laver et array over navnet, som for
          eksempel kan være \"kopi_3_6\", der så
          bliver et array som [\"kopi\",\"3\",\"6\"]
        _x = _parent.original_mc._x + int(s[1])*_root.vandret;
        _y = _parent.original_mc._y + int(s[2])*_root.lodret;
    }
}

Virker det?

Prøv det...
Avatar billede barklund Nybegynder
06. januar 2002 - 20:16 #5
Problemet med gotcha\'s forslag er det samme som lingoman, da det nemlig prøver at flytte et mc, der endnu ikke er helt loaded... Derfor skal actionen ligge på mc\'et i en onLoad...

gotcha>> Har du ikke fået invitation til http://flash.igroups.dk ? Ellers så join, da det er en udvidelse af debatten i [Vi overvejer at lave tutorials!!] http://www.eksperten.dk/spm/136499 ...
Avatar billede gotcha Nybegynder
06. januar 2002 - 21:22 #6
Aaah, det vidste jeg ikke (det fremgår jo heller ikke af spørgsmålet), men i så fald er det jo klart :)

Ifølge din kode bliver befinder alle kopierne sig inde i originalen. Hvis casm_ omvendt vil have dem placeret på hovedtidslinien, kan han vedhæfte følgende funktion til den første frame:

function createGrid () {

orgMC._visible = false;
   
numRows = 10; // Antallet af rækker
numCols = 10; // Antallet af kolonner

colSpace = 0; // Afstanden mellem objekterne i kolonnerne
rowSpace = 0; // Tilsvarende for rækkerne
   
stageWidth = 550; // Dimensionerne for dit arbejdsområde
stageHeight = 400;
startX = (stageWidth/2)-(numCols*colSpace)/2; // Dette gør, at dit grid er centreret omkring arbejdsområdet midte
startY = (stageHeight/2)-(numRows*rowSpace)/2; // Hvis du ikke ønsker dette, kan du bare angive nogle specifikke tal

for (var rowCount = 0; rowCount<numRows; rowCount++) {
    for (var colCount=0; colCount<numCols; colCount++) {
        duplicateMovieClip (\"orgMC\", \"Row\" add rowCount add \"Col\" add colCount, 100*rowCount+colCount);
        name = this[\"Row\" add rowCount add \"Col\" add colCount];
        name._x = startX+colCount*colSpace;
        name._y = startY+rowCount*rowSpace;
    }
}

}

Dette er bare ovenstående kode i en funktion. Den afgørende forskel er, at koden nu kun udføres, når vi beder om det. Vi mangler så bare at vedhæfte følgende til originalen:

onClipEvent(load) {

  if(_name == \"orgMC\"){
    _parent.createGrid(); // Hvis vi har at gøre med originalen, så kalder vi funktionen, der laver det ønskede grid
  }

}

Bare et alternativ :) Jeg har ikke set invitationen, men ordner det lige...

Mvh Morten



Avatar billede gotcha Nybegynder
06. januar 2002 - 21:38 #7
Så har jeg oprettet mig som bruger på iGroups.dk og joinet :)
Avatar billede lingoman Nybegynder
06. januar 2002 - 23:52 #8
Der sker ting og sager når man har været offline en weekend ;)

Prøv at sende mig din *.fla hvis mit forslag ikke virker når den er brugt som frame action i den frame lige efter mc \"original_mc\" først bliver vist.

Altså, hvis mc \"original_mc\" starter i frame x, så indsæt frame actionen i frame (x+1)

mvh geo
Avatar billede barklund Nybegynder
07. januar 2002 - 10:12 #9
Problemet ligger her:

duplicateMovieClip (\"orgMC\", \"Row\" add rowCount add \"Col\" add colCount, 100*rowCount+colCount);
name = this[\"Row\" add rowCount add \"Col\" add colCount];
name._x = startX+colCount*colSpace;
name._y = startY+rowCount*rowSpace;

Problemet er, at du kopierer mc\'et og i samme millisekund forsøger at flytte det med dets x og y... Det kan man ikke, hvis det kopierede mc endnu ikke er loaded... Det tager lige et par millisekunder, at loade dette... Man kan så gemme disse x og y i et 2D-array i _root og på mc sætte onLoad til at hente disse, men det er det samme, som mit forslag...

/barklund
Avatar billede gotcha Nybegynder
07. januar 2002 - 15:08 #10
Nå ja, det er jo klart. Hvor snot! :)
Avatar billede casm_ Nybegynder
07. januar 2002 - 17:32 #11
barklund>>> nu har jeg prøvet dit nye forslag...men de ligger sig stadig mærkeligt i forhold til det originale mc, prøvselv at se her... http://www27.brinkster.com/casm3000/barklunds_forslag2.swf

hvis i vil ha fla\'en...
http://www27.brinkster.com/casm3000/barklunds_forslag2.fla

jeg håber i kan se hvad jeg mener...

mvh\'

casper
Avatar billede lingoman Nybegynder
07. januar 2002 - 17:36 #12
fik du afprøvet mit forslag fra 06/01 2002 23:52:09 ? Det bur ikke give problemer uanset hvor tung din MC er.
Og hvis jeg skal lave det må du sende den til mig med ref som skrevet for oven.
mvh geo
Avatar billede gotcha Nybegynder
07. januar 2002 - 17:48 #13
Jeg kan ikke få fat i kilden, men er problemet bare, at det første element i dit grid ikke ligger oven på originalen?
Avatar billede casm_ Nybegynder
07. januar 2002 - 18:06 #14
problemet er at alle de dulicatede ligger sig til højre under originalen, de skal ligge pænt ved siden af hinanden
Avatar billede lingoman Nybegynder
07. januar 2002 - 18:08 #15
Har sendt dig mit bud på et svar og jeg håber at det er hvad du ønskede, ellers må du sige til :)
mvh geo
Avatar billede gotcha Nybegynder
07. januar 2002 - 18:11 #16
Dit grid skal altså starter på samme y-position som din original?
Avatar billede lingoman Nybegynder
08. januar 2002 - 09:08 #17
Hva\' så casm_, gør .fla\'en det den skal ?
Avatar billede casm_ Nybegynder
10. januar 2002 - 00:25 #18
præcis my man 1000 tak.
Avatar billede lingoman Nybegynder
10. januar 2002 - 16:09 #19
Tak for 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