Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-03-2004, 16:57   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
flash 5 - mx

ich weiß, diese anfängerfragen sind immer etwas lästig,
aber ich arbeite mich hier so langsam durch ein paar flashstar
fla's und komm grade bei diesem selbst nicht wirklich weiter!http://www.flashstar.de/tutlist/redi...Ffstrommel.zip

1.
gleich am anfang bekomm ich eine fehlermeldung bei:

eval(eval("mc"+i)+".d") = i*15;

was ja eigentlich auch klar ist, weil "eval" über den "mc" nur eine
referenz ausgibt - oder täusch ich mich da?
wird da nur eine neue konvention in mx verletzt, oder ist da ein
grundsätzlicher fehler?

2.
lässt "madokan"(glaube der heißt hier so) die ordner über ein
"array" erstellen:

mcPos = new Array();
for (i=0; i<24; i++) {
duplicateMovieClip("mc", "mc"+i, i);
eval(eval("mc"+i)+".d") = i*15;
}
mc._visible = false;
fscommand("allowscale", "false");

frage: kann man in einem "array" auch mehrere movieclips
oder buttons aufrufen, oder muß man die über einen anderen
weg positionieren?

bedanke mich schonmal für antworten,

quirin
ovion ist offline   Mit Zitat antworten
Alt 19-03-2004, 17:25   #2 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi quirin,

zu deiner ersten Frage:
seit Flash MX darf eval nicht mehr auf der linken Seite einer Zuweisung stehen. Das Problem kannst du auf zwei Wegen umgehen
ActionScript:
  1. // wenn du eval beibehalten möchtest
  2. duplicateMovieClip("mc", "mc"+i, i);
  3. var m = eval("mc"+i);
  4. m.d = i * 15;
  5.  
  6. // oder ohne eval mit neuer mx-Syntax von duplicateMovieClip
  7. mc.duplicateMovieClip("mc", "mc"+i, i, {d:i*15});
Deine zweite Frage verstehe ich leider nicht wirklich. Das Array ist in dem Script übrigens überflüssig und kann genau so gut gelöscht werden.

gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 19-03-2004, 17:32   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 38
//mcPos = new Array();
for (i=0; i<24; i++) {
duplicateMovieClip("mc", "mc"+i, i);
this["mc"+i].d=i*15;
// eval(eval("mc"+i)+".d") = i*15;
}
mc._visible = false;


ich habe mal 2 zeilen auskommentiert.

1. zeile:

mag sein, dass ich in der eile was übersehen habe, aber meiner meinung nach ist die total überflüssig. du musst kein array erzeugen um duplikate zu erzeugen (das passiert in der for-schleife). die namen sehen durch die zusammensetzung "mc" +variable genauso aus wie objekte aus einem array.

5. zeile:

ich habe zwar keine fehlermeldung bekommen, aber ich finde solche zeilen ... ähm ... ich würd es eben wie in zeile 4 schreiben.

wenn es um das positionieren von objekten aus einer reihe geht (oder objekte die so aussehen), kannst du den dafür vorgesehenen arrayzugriffsoperator das ganze steuern und genau das habe ich in zeile 4 getan.

hm.
DayusRam ist offline   Mit Zitat antworten
Alt 19-03-2004, 18:21   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
dank euch beiden, das hat schonmal ungemein geholfen!

@romän: die syntax gefällt mir, allerdings bringt sie nicht die
gewünschte lösung - dabei werden die mc's nicht dupliziert.
ich weiß aber leider auch nicht woran das liegt...
...trotzdem danke


@DayusRam: geht einwandfrei, vielen dank!

was meine zweite frage angeht - ich möchte jetzt keine
duplikate erzeugen sondern verschiedene mc's in der
"for"- schleife platzieren - geht das?

gruß, q.
ovion ist offline   Mit Zitat antworten
Alt 19-03-2004, 18:36   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 38
was genau meinst du mit "in der for-schleife platzieren". beschreib' mal genau, was du erreichen willst.





-------------------------------------------------------------
äh, wenn ich das richtig sehe hätte romän statt:

mc.duplicateMovieClip("mc", "mc"+i, i, {d:i*15});

das schreiben müssen

mc.duplicateMovieClip ("mc"+i, i, {d:i*15});

Geändert von DayusRam (19-03-2004 um 18:41 Uhr)
DayusRam ist offline   Mit Zitat antworten
Alt 19-03-2004, 18:50   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
also

so wie es jetzt ist, rotiert da ein schönes menu mit lauter
gleichen duplizierten ordnern. ich möchte jetzt versuchen, den selben effekt mit verschiedenen menüpunkten zu erreichen, also mit unterschiedlichen mc's!

so klappt's zwar, bin mir aber nicht sicher ob das script "sauber"
ist:

for (i=0; i<25; i++) {
this["mc"+i].d=i*1;
this["mc2"+i].d=i*15;
}

???
ovion ist offline   Mit Zitat antworten
Alt 19-03-2004, 19:11   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 38
for (i=0; i<25; i++) {
this["mc"+i].d=i*1;
this["mc2"+i].d=i*15;
}


hm. wieviele objekte willst du denn platzieren? 50 stück?
mc0 bis mc24 und mc20 bis mc224?

und warum sollen die variablen in mc0 bis mc24 auf 0 bis 24 gesetzt werden (die multiplikation mit 1 kannste weglassen es würde ein

this["mc"+i].d=i

eigentlich reichen.)
DayusRam ist offline   Mit Zitat antworten
Alt 19-03-2004, 19:22   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
ja, das mit der 1 hatte ich auch schon geändert. es sollen etwa
25 mc's sein.
über die variablen wird doch, so hab ich es zumindest
verstanden, die position gesteuert!

das steht im mc in auf der stage:
onClipEvent (load) {
p = 500;
posX = 225;
posY = 315;
}
onClipEvent (enterFrame) {
r = 120;
a=d*0.0174532925199433;
d = d+((_root._ymouse-200)/40);
xP = r*Math.cos(a);
zP = r*Math.sin(a);
z = 1/(1-(zP/p));
_y = ((xP*z)+posX);
_x = posY;
_yscale = (zP-30);
_xscale = (z*50);
_alpha = (zP+120);
swapdepths(z*1000);
}

oder nicht?
ovion ist offline   Mit Zitat antworten
Alt 19-03-2004, 19:26   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 38
in der for-schleife sprichst du insgesamt 50 mcs an.

wie heissen denn deine mcs die du rotieren lassen willst?
DayusRam ist offline   Mit Zitat antworten
Alt 19-03-2004, 19:42   #10 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
nur mal kurz zwischendurch,

ich hatte nen blöden copy+paste fehler drin. Tschuldigung. Das Script müsste richtig heißen:
ActionScript:
  1. mc.duplicateMovieClip("mc"+i, i, {d:i*15});
Will auch nicht weiter stören (ihr seid ja schon viel weiter)

gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 19-03-2004, 19:52   #11 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
da hab ich wohl einen großen denkfehler, dabei dachte ich
grade ich hätte es verstanden...

for (i=0; i<25; i++) {
this["mc0"+i].d=i*20;
this["mc1"+i].d=i*10;
this["mc2"+i].d=i;
.
.
.
}

so hätte ich das jetzt aufgebaut - aber klar, so sprech ich ja
immer wieder 25 neue an!

ohne schleife reicht ja eigentlich:

this["mc0"].d=1;
this["mc1"].d=10;
this["mc2"].d=20;
...

nur kann man das bestimmt noch schöner schreiben!
die mc's hab ich in der instanz wie oben "mc0", "mc1", "mc2" usw.
genannt.

gruß
__________________
"künstler und verbrecher
......................................
sind doch weggefährten,
beide
verfügen über eine
verrückte kreativität,
beide sind
ohne moral,
.........................................
nur getrieben von der kraft der freiheit!"
beuys
ovion ist offline   Mit Zitat antworten
Alt 19-03-2004, 20:21   #12 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 38
for (i=0; i<25; i++) {
this["mc"+i].d=i*10;
}

wenn du bei d in 10 schritten gehen willst

ohne schleife:

mc0.d=1;
mc1.d=10;
mc2.d=20;
...
DayusRam ist offline   Mit Zitat antworten
Alt 19-03-2004, 20:29   #13 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
jetzt is es perfekt - danke, danke!
__________________
"künstler und verbrecher
......................................
sind doch weggefährten,
beide
verfügen über eine
verrückte kreativität,
beide sind
ohne moral,
.........................................
nur getrieben von der kraft der freiheit!"
beuys
ovion 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 09:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele