Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-03-2007, 17:50   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
For Schleife läuft, attachMovie funkt nicht

Hallo!

Ich habe ein Rechteck erstellt, dass so oft auf der Bühne nebeneinander erscheinen soll, bis es entweder 30 sind, oder die Bühnenweite überschritten wird... Die Schleife wird ausgeführt, das hab ich mit trace probiert...nur attached wird nichts...

Hier das Skript, das Quadrat hat den Verknüpfungsbezeichner rect_mc bekommen:

PHP-Code:
this.onEnterFrame = function() {
for (var 
i:Number 0i<30i++){
    
trace("Schleife wird abgespielt" i);
    
this.attachMovie(rect_mcrect_mcthis.getNextHighestDepth() );
    
rect_mc._x=i*rect_mc._width;
    if(
rect_mc._x >= Stage.width-rect_mc.width){
        
stop();
    }
    }

Woran könnte das liegen?

thx
gmadesign ist offline   Mit Zitat antworten
Alt 09-03-2007, 17:55   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Z.B. daran daß alles immer wieder neu attachet wird,
da das ganze unsinnigerweise in einer onEnterFrame-
Schleife steckt. Probiere es doch mal ohne.

Abgesehen davon ist es vorteilhaft, wenn die attachten
MovieClips verschiedene Namen haben.

ActionScript:
  1. this.attachMovie("rect_mc", "rect_mc" + i, this.getNextHighestDepth() );

gruß, agspode
gaspode ist offline   Mit Zitat antworten
Alt 09-03-2007, 17:58   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
Naja, sieht dann so aus, wird aber nur einmal attached, dann ist schluss... Nehme an, ich darf das stop in der if-funktion da nicht reinschreiben?

PHP-Code:
for (var i:Number 0i<30i++){
    
trace("Schleife wird abgespielt" i);
    
this.attachMovie("rect_mc""rect_mc" ithis.getNextHighestDepth() );
    
rect_mc._x=i*rect_mc._width;
    if(
rect_mc._x >= Stage.width-rect_mc.width){
        
stop();
    }

thx
gmadesign ist offline   Mit Zitat antworten
Alt 09-03-2007, 18:02   #4 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
hallo!

warum onEnterFrame?

- du willst, wenn du eine framerate von zb. 31 hast, 31 mal in der sekunde das rechteck attachen.......
desweiteren ist der code von grund auf falsch;

mal ein ansatz:

Hintergrund Pattern

Background immer ganz ausgefüllt
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (09-03-2007 um 18:05 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 09-03-2007, 18:07   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
wieso ist er von grund auf falsch? Was meinst du? hast recht, das mit on enter frame war ein blödsinn, wollte nicht 31 in der sekunde... aber soll schon schnell gehn. Sinn von der geschichte ist, dass sich nebeneinander ein paar rechtecke anordnen, das dient nur übungszwecken, aber vom konzept hab ich schon ein paar anwendungsbeispiele, wo ich das brauchen könnte...

Mag endlich ein bisschen programmieren lernen..

thx für tipps...
gmadesign ist offline   Mit Zitat antworten
Alt 09-03-2007, 19:02   #6 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
also, ich glaub, dass die for- schleife schon schnell genug ist, da brauchste kein onEnterFrame() oder setInterval()...

bei den zwei links, die ich gepostet habe, sind recht gute beispiele dabei;



PHP-Code:
if(rect_mc._x >= Stage.width-rect_mc.width){ 
        
stop(); 
    } 
des geht mal gar nicht, das muss man anders lösen;

stop(); ist für movieclips, schaltflächen oder sound;

"break" ist in schleifen anzuwenden, um diese zu unterbrechen/abzubrechen;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 13-03-2007, 10:37   #7 (permalink)
Neuer User
 
Benutzerbild von mausmon
 
Registriert seit: Dec 2006
Beiträge: 62
hi,

ich glaube, dieser code löst dein problem:

Code:
for (var i:Number = 0; i<80; i++){
    this.attachMovie("rect_mc", "rect_mc" + i, this.getNextHighestDepth() );
	
    _root["rect_mc"+i]._x = _root["rect_mc"+(i-1)]._x + _root["rect_mc"+i]._width + 5;
    _root["rect_mc"+i]._y = _root["rect_mc"+(i-1)]._y
	
	if (_root["rect_mc"+i]._x > Stage.width){//neue zeile beginnen
		_root["rect_mc"+i]._x = 0
		_root["rect_mc"+i]._y = _root["rect_mc"+i]._y + 50
	}	
}
mausmon ist offline   Mit Zitat antworten
Alt 13-03-2007, 17:12   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
naja, nicht so ganz, es bauen sich ca. 5 zeilenund 9 spalten auf, wobei der letzten spalte unten etwas fehlt. aber kein ganzes rechteck, sehr strange...

Hier mal das file:
dwld
gmadesign ist offline   Mit Zitat antworten
Alt 13-03-2007, 19:19   #9 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
for (var i:Number = 0; i<80; i++){
this.attachMovie("rect_mc", "rect_mc" + i, this.getNextHighestDepth() );

_root["rect_mc"+i]._x = _root["rect_mc"+(i-1)]._x + _root["rect_mc"+i]._width + 5;
_root["rect_mc"+i]._y = _root["rect_mc"+(i-1)]._y

if (_root["rect_mc"+i]._x > Stage.width){//neue zeile beginnen
_root["rect_mc"+i]._x = 0
_root["rect_mc"+i]._y = _root["rect_mc"+i]._y + 50
}
}
------------------------------------------------------------------------

_root["rect_mc"+(i-1)] wo(was) soll das sein??? gibts einen "mc -1" ???
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti 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 04:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele