kostenloser Webspace werbefrei: lima-city


Frag zu AS 1.0

lima-cityForumDie eigene HomepageFlash und Silverlight

  1. Autor dieses Themas

    pdr

    pdr hat kostenlosen Webspace.

    Hallo,
    habe folgendes Problem und zwar habe ich 8 Movieclips mit den selben eigenschaften und möchte folgenden Code vereinfachen bzw. kürzen.

    code:

    this.mc1._visible = false;
    this.mc2._visible = false;
    this.mc3._visible = false;
    this.mc4._visible = false;
    this.mc5._visible = false;
    this.mc6._visible = false;
    this.mc7._visible = false;
    this.mc8._visible = false;

    zahl = random(8);

    if (zahl == 0) {
    this.mc1._visible = true;
    } else if (zahl == 1) {
    this.mc2._visible = true;
    } else if (zahl == 2) {
    this.mc3._visible = true;
    } else if (zahl == 3) {
    this.mc4._visible = true;
    } else if (zahl == 4) {
    this.mc5._visible = true;
    } else if (zahl == 5) {
    this.mc6._visible = true;
    } else if (zahl == 6) {
    _root.mc7._visible = true;
    } else if (zahl == 7) {
    this.mc8._visible = true;
    }
    with (mc1) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);
    }
    with (mc2) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);
    }
    with (mc3) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);
    }
    with (mc4) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);
    }
    with (mc5) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);
    }
    with (mc6) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);
    }
    with (mc7) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);
    }
    with (mc8) {
    _x = Math.floor(Math.random()*300);
    _y = Math.floor(Math.random()*50);

    Wie man seiht ist es immer daselbe bei 20 Movieclips müsste ich alles 20mal kopieren wie kann man dies vereinfachen ??

    gruß phil
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage


  3. Hallo,
    habe folgendes Problem und zwar habe ich 8 Movieclips mit den selben eigenschaften und möchte folgenden Code vereinfachen bzw. kürzen.

    code:

    >schnippschnapp

    Wie man seiht ist es immer daselbe bei 20 Movieclips müsste ich alles 20mal kopieren wie kann man dies vereinfachen ??

    gruß phil


    Ungetestet und möglicherweise mit Fehlern. Wenns nicht funktioniert einfach antworten, vielleicht schau ich nochmal vorbei ;)

    for (i=0; i<8; i++) 
    {
       this["mc"+i]._visible = false;
       //oder auch 
       //setProperty(eval("mc"+i), _visible, 0);
       with(eval("mc"+i)) {
        _x = Math.floor(Math.random()*300);
        _y = Math.floor(Math.random()*50);
       }
    }
    zahl = (random(8))-1;
    
    this["mc"+zahl]._visible = true;
    //oder auch
    //setProperty(eval("mc"+zahl), _visible, 1);


    Gruß.

    Edit flüsterte mir doch noch den einen oder anderen Fehler ;)

    Beitrag geändert: 24.8.2007 4:28:21 von frameless
  4. Autor dieses Themas

    pdr

    pdr hat kostenlosen Webspace.

    danke mal für die antwort
    müsste es nachher mal probieren.

    this["mc"+i]._visible = false;

    Warum eckige klammer ?
    Nach jedem schleifendurchlauf würde der entsprechende mc unsichtbar, wär ne idee.

    with(eval("mc"+i)) was bedeutet eval ??

    zahl = (random(8))-1; Wieso mit -1 ?

    Hast du die if anweisung absichtlich weggelassen ?

    lg pdr

  5. danke mal für die antwort
    müsste es nachher mal probieren.

    this["mc"+i]._visible = false;

    Warum eckige klammer ?
    Nach jedem schleifendurchlauf würde der entsprechende mc unsichtbar, wär ne idee.

    with(eval("mc"+i)) was bedeutet eval ??

    Eckige Klammern und eval() geben jeweils den Bezug zu einem MC zurück. Im laufenden Programm wird also die Funktion
    eval("mc"+i)
    den entsprechenden richtigen Namen, in Abhängigkeit von i, zurückgeben, z.B. mc1. (In der Initialisierung musst du natürlich für i nicht 0, sondern 1 angeben...)

    zahl = (random(8))-1; Wieso mit -1 ?

    Hast du die if anweisung absichtlich weggelassen ?

    Das -1 sollte natürlich ein +1 sein und stellt nur den Ausdruck aus random() richtig, damit du mit 'zahl' auch deine wirkliche MC-zahl hast. Die if-Anweisung wurde absichtlich weggelassen und durch
    this["mc"+zahl]._visible = true;
    ersetzt.

    Gerade ist mir noch eingefallen, dass du das ganze noch ein bisschen vereinfachen könntest, indem du die random()-Funktion auch in der eval()-Funktion ausgiebst. Mit
    setProperty(eval("mc"+random(8)+1), _visible, 1);
    könnte es auch funktionieren.

    Gruß.

    Edit flüsterte mir noch ein Fehlerchen zu... ;)

    Beitrag geändert: 28.8.2007 1:18:06 von frameless
  6. Autor dieses Themas

    pdr

    pdr hat kostenlosen Webspace.

    ach du schreck,obwohl...

    mal probiren

  7. ach du schreck,obwohl...

    mal probiren


    :lol:

    Würde mich dann über eine Antwort freuen, wenn's funktioniert. Oder nicht. ;)

    Gruß.
  8. Autor dieses Themas

    pdr

    pdr hat kostenlosen Webspace.

    supi,danke für deine hilfe

    so funktioniert es:

    for (i=1; i<=35; i++) 
    {
       this["mcl"+i]._visible = false;
      
       with(eval("mcl"+i)) {
        _x = Math.floor(Math.random()*300);
        _y = Math.floor(Math.random()*50);
       }
    }
    zahl = (random(34))+1;
    
    this["mcl"+zahl]._visible = true;


    aber das wichtigste kommt erst noch...

    this.onMouseDown = function() {
    	if (this.mcl1._visible == true && this.mcl1.hitTest(_parent._xmouse, _parent._ymouse, true)) {
    		_root.punkte += 10;
    		this.mcl1._visible = false;
    	}

    dabei sollen bestimmte mcs minus punkte geben und bestimmte mcs + punkte aber das kann ich jetzt mit copy n' paste machen.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!