| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 2
|
Hallo, Suche eine Möglichkeit die Eventhandler von MCs die ich in einem Array erfasse per Schleife zu belegen. Das hier Funktioniert leider nicht: PHP-Code: PHP-Code: Gruß Alex |
| | |
| | #2 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
Du mußt die Laufvariable im MovieClip speichern, damit auch später noch darauf zugegriffen werden kann. PHP-Code: |
| | |
| | #3 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Nur so: In diesem Fall hier ginge auch this. PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #7 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
die frage ist nicht ganz klar: soll 10x onPress ausgeführt werden, oder 10x play, selbes oder unterschiedliche mc's? z.b. bei 10x braut.play(); dazu musst du irgendwo eine variable installieren, die von 10 runter zählt. deren auswertung muss am ende von _root.braut.play(); erfolgen (wo und wann auch immer das sein mag). denn ein zweites mal darf ja erst starten, wenn das erste play fertig ist.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (22-11-2009 um 13:35 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Nov 2009
Beiträge: 7
|
Ok, also es ist so, dass der Button 'schuss' das Event 'braut' startet. jetzt möcht ich das so machen, dass ein Klick von dem Button das Event 'braut' 10 mal startet. War das besser ausgedrückt? Bin leider wahnsinnig schlecht im Flash-Jargon bzw überhaupt in Flash ^^ danke aber schonmal für die Mühe. |
| | |
| | #9 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
also die animation 'braut' soll 10x hintereinander ablaufen? das habe ich dir ja schon erklärt. was wir nicht wissen können (und deshalb musst du das selbst lösen) wo und wann die 'braut' fertig ist. ich sage mal im letzten frame des 'braut'-mc's. und genau da könntest du einen zähler herunterzählen z.b. Code: root.schuss.onPress = function() {
_root.braut.loop=10;
_root.braut.gotoAndPlay(1);
}
// am ende der animation braut z.b.:
if (loop) {
loop--;
gotoAndPlay(1);
} else {
stop();
}
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Nov 2009
Beiträge: 7
|
Tja, wenn ich das selbst so genau wüsste bzw verstünde ^^ Aber danke schonmal. Werd einfach ganz viele Stellen ausprobieren, irgendwo wirds schon reinpassen ![]() EDIT: Oder ich poste mal meinen Quelltext, vielleicht kennt sich dann wer aus. Hier mal Script von Szene 1 Bild 1: Code: n=0;
globSpeed=1.1;
brautjungferSpeed=3;
_root.brautjungfer.onEnterFrame = function(){
if (Key.isDown(Key.RIGHT)){
if(this._x <= (Stage.width - this._width) ){
this._x += _root.brautjungferSpeed
}
}else if (Key.isDown(Key.LEFT)){
if(this._x >= 222 ){
this._x -= _root.brautjungferSpeed
}
}
for (i=0; i<=n; i++) {
if (this.dropzone.hitTest(_root['strauss' + i])){
alteXPos = _root['strauss' + i]._x;
_root['strauss' + i].removeMovieClip();
_root.brautjungfer.attachMovie("strauss","strauss" + i, i);
_root.brautjungfer['strauss' + i]._y -= 220; //_root.brautjungfer['strauss' + i]._height
_root.brautjungfer['strauss' + i]._x = 0//alteXPos - _root.brautjungfer._x;
}
}
}
_root.schuss.onPress = function() {
_root.braut.loop=10;
_root.braut.gotoAndPlay(1);
}
function wirfStrauss() {
_root.attachMovie('strauss', 'strauss'+ n, n)
_root["strauss" + n]._x = 40;
_root["strauss" + n]._y = 200;
_root["strauss" + n].speed = _root.globSpeed*random(4.2)+2;
_root["strauss" + n].xmov = _root["strauss" + n].speed * Math.cos(-20*Math.PI/180);
_root["strauss" + n].ymov = _root["strauss" + n].speed * Math.sin(-60*Math.PI/180);
_root["strauss" + n].onEnterFrame = function () {
this._x+= this.xmov;
this._y+= this.ymov;
this.ymov += this.speed /50;
if(this._y > Stage.height)this.removeMovieClip();
}
//Zaehler erhoehen
n++;
} Code: stop(); Code: //ausfuehren von wirfBall _root.wirfStrauss(); Geändert von Alagar (22-11-2009 um 15:18 Uhr) |
| | |
| | #11 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
if(this._y > Stage.height)this.removeMovieClip(); ich vermute einmal: nachdem der strauss auf dem boden liegt, dann ist schluss mit lustig. dann gehört die wiederholung wohl hier hin: Code: if(this._y > Stage.height) {
this.removeMovieClip();
trace("nur zum testen: "+_root.braut.loop);
if (_root.braut.loop) {
_root.braut.loop--;
_root.braut.gotoAndPlay(1);
}
}
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (22-11-2009 um 15:23 Uhr) |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Nov 2009
Beiträge: 7
|
Nein funktioniert nicht ![]() EDIT: Ok funktioniert doch, allerdings nur wenn die Sträusse nicht gefangen werden, also nur wenn sie am Boden landen, allerding sollte es auch nach einem gefangenen Strauss weitergehen bis 10 geworfen und/oder 5 gefangen wurden EDIT: ich versuche jetzt (this._y > Stage.height) mit einer ODER-Verknüpfung so zu verbinden, dass auch die gefangenen Strausse in die selbe if-bedingung leiten, hab allerdings noch nicht genau ruasgefunden, wie ^^ Geändert von Alagar (22-11-2009 um 16:01 Uhr) |
| | |
| | #13 (permalink) | |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
| Zitat:
für jede noch so kleine aufgabe erstelle eine eigene function. also z.b. die doBrautStraussWurfWiederhol-Funktion. so eine funktion kannst du von unterschiedlichen stellen aus aufrufen und hier zentral die bedingungne für ein wiederholen programmieren. ist übersichtlich, verständlich und wartungsfreundlich. z.b. Code: function doBrautStraussWurfWiederhol(): void {
var wurfWiederholung:Boolean=false;
//
if (bedingung1) {
wurfWiederholung=true;
}
if (bedingung2) {
wurfWiederholung=true;
}
//
if (wurfWiederholung) {
} else {
}
}
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (22-11-2009 um 17:40 Uhr) | |
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Nov 2009
Beiträge: 7
|
In der theorie keine schlechte Idee und ich denke ich versteh auch was du meinst. meine größte Schwierigkeit ist immer nur zu wissen, wo ich diese Dinge alle reinschreib. Bzw wo ich die neue funktion aufruf. hat sich schon erledigt. hab jetzt einen kompromiss geschlossen und bin halbwegs zufrieden ^^ Herzlichen Dank für deine Hilfe! Geändert von Alagar (22-11-2009 um 20:07 Uhr) |
| | |
| | #15 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
du behälst die blumen und wirfst einmal die braut hin? :-)))
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (23-11-2009 um 11:56 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |