Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-04-2011, 16:54   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 50
attachMovie in for schleife

hallo,
ich habe 10 mc in bühne die heisen mc0, mc1, mc3 .... mc10
und möchte mit attachMovie aus array zu diesen 10 mc atachten das geht problem loss mein problem ist das mc0 biss mc10 soll in bühne bleiben aber von array möchte z.B von 0 biss 9 von 9 biss x immer so atachten wie mehrer seiten wenn ich 2 schleife mache wird nicht atachtet.
hat jemand idee die scheife brauche ich für das mcs aber wie kann ich bei array von biss atachten?

ActionScript:
  1. function sirala(Start:Number, End:Number) {
  2.     for (var i = Start; i < End; i++) {
  3.         var btn = _root["mc" + i].attachMovie(_root._liste[i], _root._liste[i], _root.getNextHighestDepth());
  4.         btn.ID = i;
  5.         btn.onRelease = function() {
  6.             trace("this._name: " + this._name);
  7.         };
  8.     }
  9. }
lupe ist offline   Mit Zitat antworten
Alt 08-04-2011, 17:14   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
var btn = _root["mc" + i].attachMovie(_root._liste[i], _root._liste[i], _root.getNextHighestDepth())

wenn du in _root["mc" + i] reinattach'st, dann nützt eine abfrage nach der menge _root.getNextHighestDepth() in _root wenig

lass dir vorher trace'n welche namen und welches level du benützt. das muss unterschiedlich sein, sonst überschreiben die sich gegenseitig.
ansonsten habe ich leider nicht verstanden, was du wie und wohin zaubern willst.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (08-04-2011 um 17:18 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 08-04-2011, 17:46   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 50
mein problem ist:

das schleife
for (var i = 0; i < 11; i++) {
root["mc" + i] brauche ich für die mcs in bühne ist weil ich da immer fest 12 mc habe


rest kommt aus biblotek mit attachMovie(_root._liste[i], _root._liste[i] namen aus array

was ich machen will genau an dem stelle in array habe ca 50 elemente ich will von von0 biss11 von11 biss22 ändern

attachMovie(_root._liste[von0], _root._liste[biss11]
attachMovie(_root._liste[von11], _root._liste[biss22]

wenn ich das mit 2 forschleife mache dann funktoniert das attachMovie nicht mehr kommt die inhalt nicht
lupe ist offline   Mit Zitat antworten
Alt 08-04-2011, 18:02   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Code:
function sirala(Start:Number, End:Number) {
  for (var i = Start; i < End; i++) {
    var mcName = _root._liste[i];
    var level = _root.getNextHighestDepth();
    trace("name: "+mcName +" level: "+ level +" i: "+ i);
    var btn = _root.attachMovie(mcName, mcName+i, i);
    btn.ID = i;
    btn.onRelease = function() {trace("this._name: " + this._name);};
  }
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (08-04-2011 um 18:04 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 08-04-2011, 19:03   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 50
ja das geht auch nicht das attachted neue mc.

ich habe 12 mc in bühne diese 12 mc sind fest in bühne die müssen auch da sein. was ich machen muss von diesen array zu diesen mc attachten das mache ich mit dem erste code mein problem ist nur array hat 50 inhalt ich möchte erste 10 dann von 10 biss 20 dan von 20 biss 30 ändern inhalt. aber das geht nicht
lupe ist offline   Mit Zitat antworten
Alt 08-04-2011, 19:19   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 50
wenn ich das
var btn = _root.attachMovie(mcName, mcName+i, i);
in
var btn =_root["mc" + i].attachMovie(mcName, mcName+i, i);

ändere geht das aber jetzt nur problem wenn ich von andere button aus inhalt ändern möchte bei trace gib mir richtige inhalt aber das alte mc bleibt da stehen muss ich erste atachte löschen ?
lupe ist offline   Mit Zitat antworten
Alt 08-04-2011, 19:22   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 50
nein wieder gleiche problem das =_root["mc" + i]. muss einfach jedesmal nur von0 biss12 gehen weil ich die in bühne fest habe rest inhalt von array muss ich selber bestemen mit start und end
lupe ist offline   Mit Zitat antworten
Alt 09-04-2011, 08:54   #8 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Schwer zu verstehen.

_root.mc0.attachMovie(0-10);
_root.mc1.attachMovie(11-20);
_root.mc2.attachMovie(21-30);
usw.

Ist das so gemeint?
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 10-04-2011, 10:09   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 50
damit funktoniert was ich machen will nächste problem wie kann ich removeMovieClip machen vor ich neu hinzufüge möchte alte löschen
_root["mc" + zaehler ]._root._liste[i].removeMovieClip() geht nicht ?

ActionScript:
  1. var zaehler = 0;
  2. function sirala(Start:Number, End:Number) {
  3.     for (var i = Start; i < End; i++) {
  4.         var btn = _root["mc" + zaehler].attachMovie(_root._liste[i], _root._liste[i], _root.getNextHighestDepth());
  5.         btn.ID = i;
  6.         btn.onRelease = function() {
  7.             trace("this._name: " + this._name);
  8.         };
  9.     }
  10. }

Geändert von lupe (10-04-2011 um 10:16 Uhr)
lupe ist offline   Mit Zitat antworten
Alt 10-04-2011, 15:06   #10 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Servus
// eine Array-Lösung
PHP-Code:
this.createEmptyMovieClip ("mc_0",this.getNextHighestDepth ());
this.createEmptyMovieClip ("mc_1",this.getNextHighestDepth ());
var 
startEndArray:Array = [[110], [110]];
var 
btnArray:Array = [];
this.mc_0._x 20;
this.mc_0._y 20;
this.mc_1._x 20;
this.mc_1._y 120;
var 
zaehler:Number 0;
function 
sirala (Start:NumberEnd:Number)
{
    for(var 
j:Number =0j<btnArray.length;j++)
    {
        
btnArray[j].removeMovieClip();
    }
    
btnArray.length 0;
    for (var 
StartEndi++)
    {
        var 
btn:MovieClip _root["mc_" zaehler].attachMovie ("bibMc""bibMc" i_root["mc_" zaehler].getNextHighestDepth (), {_x:50 i});
        
btn.ID i;
        
btnArray.push (btn);
        
btn.onRelease = function ()
        {
            
trace ("this._name: " this._name);
        };
    }
    
zaehler++;
}
check_btn.onPress = function ()
{
    
sirala (startEndArray[zaehler][0],startEndArray[zaehler][1]);
}; 
// eine Variablen-Lösung
PHP-Code:
this.createEmptyMovieClip ("mc_0",this.getNextHighestDepth ());
this.createEmptyMovieClip ("mc_1",this.getNextHighestDepth ());
var 
startEndArray:Array = [[110], [110]];
var 
memoClip:MovieClip null;
this.mc_0._x 20;
this.mc_0._y 20;
this.mc_1._x 20;
this.mc_1._y 120;
var 
zaehler:Number 0;
function 
sirala (Start:NumberEnd:Number)
{
    if (
memoClip != null)
    {
        for (var 
mc in memoClip)
        {
            if (
typeof memoClip[mc] == 'movieclip')
            {
                
memoClip[mc].removeMovieClip();
            }
        }
    }
    for (var 
StartEndi++)
    {
        var 
btn:MovieClip _root["mc_" zaehler].attachMovie ("bibMc""bibMc" i_root["mc_" zaehler].getNextHighestDepth (), {_x:50 i});
        
btn.ID i;
        
btn.onRelease = function ()
        {
            
trace ("this._name: " this._name);
        };
    }
    
memoClip _root["mc_" zaehler];
    
zaehler++;
}
check_btn.onPress = function ()
{
    
sirala (startEndArray[zaehler][0],startEndArray[zaehler][1]);
}; 
Geht evtl. noch schlauer, aber auf die schnelle ;-)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 10-04-2011, 18:02   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Kürzer geht es bestimmt, ich würde das ganze eher mehr aufräumen:
ActionScript:
  1. function createClips(target:MovieClip, symbol:String, prefix:String, startIndex:Number, endIndex:Number):Array /* of MovieClips */
  2. {
  3.   // Other option: throw an error
  4.   if (startIndex <= endIndex) return [];
  5.  
  6.   // Other option: throw an error
  7.   if (!target || !clipName || !prefix) return [];
  8.  
  9.   var clips:Array = [];
  10.  
  11.   for (var i:Number = startIndex; i < endIndex; i++)
  12.   {
  13.     var clip:MovieClip = target.attachMovie(symbol, prefix + i, target.getNextHighestDepth());
  14.     // You might want to add event handlers
  15.     clip.id = i; // perhaps redundant
  16.     clips[clips.length] = clip;
  17.   }
  18.  
  19.   return clips;
  20. }
  21.  
  22. function layoutClips(clips:Array /* of MovieClips*/ ):Array /* of MovieClips */
  23. {
  24.   // Layout the clips
  25.   return clips;
  26. }
  27.  
  28. function removeClips(target:MoviClip, clips:Array /* of MovieClips */ ):Void
  29. {
  30.  
  31.   var length:Number = clips.length;
  32.   for (var i:Number; i < length; i++)
  33.   {
  34.     var clip:MovieClip = array[i];
  35.  
  36.     // No need for typeOf, since we tell the compiler to cast, only need to check for null
  37.     if (clip && target[clip._name])
  38.     {
  39.       target[clip._name].removeClip();
  40.     }
  41.   }
  42. }
Ich würde das ganze mehr entzerren. Ausserdem Kann doch der Compiler in AS2 schon etwas mehr leisten (typeOf)...

Und ein genereller Tip: so viel wie möglich in Funktionen denken und diese auch programmieren.
Omega Psi ist offline   Mit Zitat antworten
Alt 10-04-2011, 22:43   #12 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Und ein genereller Tip: so viel wie möglich in Funktionen denken und diese auch programmieren.
Kann ich, ich versuche aber nicht den Thread-Ersteller dazu zu zwingen
Und gehe soweit als möglich auf dessen Form ein.
Deswegen die Art meiner Lösungen.

P.S. Was natürlich nicht heißen soll, das ich Deine Vorschlag nicht interessant finde ;-)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"

Geändert von RustyCake (10-04-2011 um 23:32 Uhr)
RustyCake 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash MX 2004] attachmovie in schleife... hahn51 Flash Einsteiger 3 07-01-2009 15:32
attachMovie + if-schleife/for-schleife bestboy ActionScript 1 9 12-02-2005 18:54
attachMovie in einer for-schleife? RckStrDsn Flash MX 2004 2 04-11-2004 16:58
attachMovie per for-Schleife und Array Halax Flash MX 13 06-06-2004 19:49
for schleife attachMovie und onPress k3nnymc71 ActionScript 1 5 23-11-2003 17:59


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele