Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-03-2005, 13:58   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 90
Zugriff auf Funktion funktioniert nicht :-(

Hi Leute,

warum funktioniert denn der Zugriff/Ausführung der Funktion "EnemyLeft" nicht? Sie soll von 2 Objekten mehrfach aufgerufen werden (per onClipEvent(enterFrame)).

Code von Objekt 1:

onClipEvent(enterFrame) {
_root.Enemy1.EnemyLeft(0);
}


Code von Objekt 2:

onClipEvent(enterFrame) {
_root.Enemy2.EnemyLeft(1);
}


Code von _root (erstes Bild in der Ebene):

MovieClip.prototype.EnemyLeft = function(index) {
trace(this + " " + index);
}


Beide Objekte sind eigenständige MovieClips. Wenn ich den Film starte, werden per trace nur die Daten von Enemy1 ausgegeben (mit dem Trace-Befehl), das 2. Objekt (Enemy2) meldet sich aber garnicht.

Wodran kann denn das liegen und wie kann man das Problem lösen?

Danke schonmal im Voraus! :-)

Gruß Nova
Novanic ist offline   Mit Zitat antworten
Alt 21-03-2005, 14:16   #2 (permalink)
zimmer 101
 
Benutzerbild von ricobeck
 
Registriert seit: Jul 2003
Ort: LE
Beiträge: 1.581
hab's mal getestet...

...und so funktioniert es:
PHP-Code:
MovieClip.prototype.EnemyLeft = function(index) {
    
trace(this " " index);
}
_root.createEmptyMovieClip("Enemy1",0);
Enemy1.onEnterFrame=function(){
    
this.EnemyLeft(1);
}
_root.createEmptyMovieClip("Enemy2",1);
Enemy2.onEnterFrame=function(){
    
this.EnemyLeft(2);

???

l.g.
rick
__________________
Illogical comparison with NaN. Any comparison operation involving NaN will evaluate to false because NaN != NaN.
ricobeck.de
ricobeck ist offline   Mit Zitat antworten
Alt 21-03-2005, 14:22   #3 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Da war einer Schneller.

Ich hab mal beide Varianten durch (Objekt- und Zeitleistenaktion).
Bei mir funzts.

Beispiel mit beide Varianten im Anhang.
Angehängte Dateien
Dateityp: rar prototype.rar (3,4 KB, 2x aufgerufen)
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 21-03-2005, 14:49   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 90
Hi,

danke schonmal für die schnellen und hilfreichen Antworten! :-)

Aber leider scheint das bei mir nicht zu funktionieren, da ich createEmptyMovieClip nicht verwenden kann, weil die MovieClips bereits auf meiner Bühne integriert sind.
Gibt es nicht die Möglichkeit die bestehenden zu nehmen?
Es handelt sich dabei um 3 MovieClip-Objekte, die sich alle nur durch die Grafik unterscheiden (alle ein anderes Bild). Kann man das Bild auch dynamisch reinladen und für alle Objekte einfach den gleichen MovieClip (Vorlage) nehmen?

Danke schonmal! :-)

Gruß Nova
Novanic ist offline   Mit Zitat antworten
Alt 21-03-2005, 15:11   #5 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Hast du die den Anhang von mir mal angeschaut? Sieht es bei dir genauso aus?

Das ist ne Möglichkeit.
ActionScript:
  1. for (var i=1;i<=3;i++){
  2.     var eneny=_root.createEmptyMovieClip("Enemy"+i,1+i);
  3.     // : Bilder liegen im gleichen Verzeichnis
  4.     eneny.loadMovie("dein"+i+".jpg")
  5.     eneny.ID=i
  6.     eneny.onEnterFrame=function(){
  7.         this.EnemyLeft(this.ID);
  8.     }
  9. }
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 21-03-2005, 15:14   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 90
Okay, also es kommen keine Fehlermeldungen. *g*

Aber die sind jetzt noch nicht zu sehen. Hab versucht die Koordinaten zu setzen und visible = true und so, ist aber trotzdem nichts zu sehen. In welcher Ebene werden die eigentlich erzeugt?


Das hab ich jetzt in der _root:

for (var i=1;i<=3;i++){
var VarEnemy=_root.createEmptyMovieClip("Enemy"+i,1+i) ;
VarEnemy.loadMovie("enemy"+i+".bmp")
VarEnemy.ID=i
VarEnemy.onEnterFrame = function(){

if(_root.collisionE[VarEnemy.ID] == true && _root.chooseE[VarEnemy.ID] == false) {
num = random(4);
}

switch(num) {
case 1:
VarEnemy.EnemyLeft(VarEnemy.ID);
break;
case 2:
VarEnemy.EnemyRight(VarEnemy.ID);
break;
case 3:
VarEnemy.EnemyUp(VarEnemy.ID);
break;
case 4:
VarEnemy.EnemyDown(VarEnemy.ID);
break;
}
}
}


Danke schonmal, bin schon ein ganzes Stück schlauer geworden und weiter gekommen :-)

Gruß Nova

Geändert von Novanic (21-03-2005 um 15:34 Uhr)
Novanic ist offline   Mit Zitat antworten
Alt 22-03-2005, 11:47   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 90
Need Help!!! :-(

Okay, ich hab das jetzt hinbekommen, lag scheinbar an den bmp Dateien.

Aber jetzt hab ich das Problem das es nicht funktioniert. Kann es sein, dass onEnterFrame nur 1 mal aufgerufen wird? Normalerweise wird das ja ständig aufgerufen, passiert hier aber net. :-(

Danke schonmal! :-)

Gruß Nova

Geändert von Novanic (22-03-2005 um 12:34 Uhr)
Novanic 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 12:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele