Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-03-2005, 18:30   #1 (permalink)
Neuer User
 
Benutzerbild von dnex5
 
Registriert seit: May 2003
Ort: Österreich
Beiträge: 90
mc.onPress = funktion(parameter1, parameter2) --> geht nicht!

Ich tüfftle gerade darüber, wie ich mit

ActionScript:
  1. mc.onPress = funktion(parameter1, parameter2)

einem Movieclip eine onPress-Funktion zuweise... Wenn ich eine Funktion ohne Parameter habe (mc.onPress = funktion; ) funktioniert das ganz tadellos - nur wie mache ich das bei Funktionen mit Parametern? Geht das überhaupt? Oder wie löse ich das am elegantesten?

Hier mein Code-Beispiel:

ActionScript:
  1. spielStarten = function () {
  2.     score = 0;
  3.     ebene = 0;
  4.     // blöcke erzeugen
  5.     for (x=0; x<20; x++) {
  6.         for (y=0; y<12; y++) {
  7.             var mc = _root.attachMovie("bloecke", "bloecke"+"_"+x+"_"+y, ebene++);
  8.             mc._x = 20*x+50;
  9.             mc._y = 20*y+50;
  10.             mc.x = x;
  11.             mc.y = y;
  12.             mc.gotoAndStop(random(5));
  13.             mc.onPress = blockKlicken(mc.x, mc.y);
  14.         }
  15.     }
  16. };
  17. blockKlicken = function (x, y) {
  18.     trace(x+" "+y);
  19. };
  20. spielStarten();

Ich will ja nur, dass wenn ich auf den Movieclip drücke, dass dann die Werte für x und y getracet werden. Aber wenn ich die Funktion zuweise und meinen Flash-Film teste sehe ich auf einmal alles getracet...

Wie kann ich das umgehen/lösen?
Angehängte Dateien
Dateityp: zip rekursive_bloecke.zip (2,4 KB, 4x aufgerufen)
__________________
Was denkbar ist, ist programmierbar!
Flash.Nepraunig.com

Geändert von dnex5 (02-03-2005 um 18:46 Uhr)
dnex5 ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:34   #2 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
onRelease erwartet keine parameter, deshalb wirst du damit auch kein glück haben...

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:35   #3 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
So isses richtig.
PHP-Code:
spielStarten = function () {
    
score 0;
    
ebene 0;
    var 
mc;
    
// blöcke erzeugen
    
for (x=0x<20x++) {
        for (
y=0y<12y++) {
            
mc _root.attachMovie("bloecke""bloecke"+"_"+x+"_"+yebene++);
            
mc._x 20*x+50;
            
mc._y 20*y+50;
            
mc.x;
            
mc.y;
            
mc.gotoAndStop(random(5));
            
mc.onRelease = function()
            {
                
trace(this._x+" "+this._y);
                
//oder meinste das
                //trace(this.x+" "+this.y);
            
}
        }
    }
};

spielStarten(); 
__________________
ERROR: Signature is too large

Geändert von rendner[i] (02-03-2005 um 18:38 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:39   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Anstatt

ActionScript:
  1. mc.x = x;
  2. mc.y = y;
  3. mc.onPress = blockKlicken(mc.x, mc.y);
benutzt du
ActionScript:
  1. mc.x = x;
  2. mc.y = y;
  3. mc.onPress = function(){
  4.     blockKlicken( this.x, this.y);
  5. }

Edit:
ups, zu lahm


mfg. r.

Geändert von bokel (02-03-2005 um 18:41 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:41   #5 (permalink)
Neuer User
 
Benutzerbild von dnex5
 
Registriert seit: May 2003
Ort: Österreich
Beiträge: 90
ActionScript:
  1. mc.onRelease = function(x, y) {
  2.                     x = this.x;
  3.                     y = this.y;
  4.                     trace(x + " " + y);
  5.             }

nur WIE kann ich diese funktion "ausgliedern" und dann "zuweisen"?
__________________
Was denkbar ist, ist programmierbar!
Flash.Nepraunig.com
dnex5 ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:44   #6 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
wer lesen kann, is klar im vorteil

nimm die parameter aus der function !
hast doch schon zwei beispiele...

btw: deine frage versteh ich nich.
was denn ausgliedern und zuweisen ?
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:45   #7 (permalink)
Neuer User
 
Benutzerbild von dnex5
 
Registriert seit: May 2003
Ort: Österreich
Beiträge: 90
Ach soooooooooooooo elegant geht das mit "ausgliedern" - danke bokel!

ich habe gerade noch diese variante gescriptet:

ActionScript:
  1. mc.blockKlicken(mc.x, mc.y);
  2.  
  3. Movieclip.prototype.blockKlicken = function(x, y) {
  4.     this.onRelease = function() {
  5.         x = this.x;
  6.         y = this.y;
  7.         trace(x+" "+y);
  8.     };
  9. };
__________________
Was denkbar ist, ist programmierbar!
Flash.Nepraunig.com
dnex5 ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:48   #8 (permalink)
Neuer User
 
Benutzerbild von dnex5
 
Registriert seit: May 2003
Ort: Österreich
Beiträge: 90
@the binary: ich wollte die funktion für das onPress-Ereignis ausgliedern und nicht in meiner spielStarten-Funktion drinnen stehen haben.

aber jetzt gehts danke eurer hilfe - DANKE!
__________________
Was denkbar ist, ist programmierbar!
Flash.Nepraunig.com
dnex5 ist offline   Mit Zitat antworten
Alt 02-03-2005, 18:59   #9 (permalink)
Blutsauger
 
Benutzerbild von GrafvonKrolock
 
Registriert seit: Mar 2005
Beiträge: 112
SALVE

anbei eine bischen hausbackene Vesion.

Gruß
Graf
Angehängte Dateien
Dateityp: zip rekursiveBloecke.zip (22 Bytes, 4x aufgerufen)
__________________
Carpe Noctem
GrafvonKrolock 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 22:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele