Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-12-2004, 14:49   #1 (permalink)
want some...?
 
Benutzerbild von Chidi
 
Registriert seit: Sep 2002
Ort: Hannover
Beiträge: 223
Question Im MC klappt die Function "nextFrame()" nicht.

Hallo Flasher!

Ich bin schon kurz vorm Kollaps.
In Frame(1) meines MCs bewege ich ein MC an A nach B.
Und nach dieser Aktion soll er einfach ein Frame weiter wandern.
Dachte mir mit nextFrame(); müßte das ja wunderbar klappen, aber auf Kies gefurzt. Hilfe brauche ich, bitte.

Code:
stop();

this.onEnterFrame=function(){
      if (this._x > -2700){
               this._x -= 5;
      }else{
               delete this.onEnterFrame;
               nextFrame();
        }
}
__________________
Chidi #90
=========================
www.theBecker.de
=========================
Chidi ist offline   Mit Zitat antworten
Alt 29-12-2004, 14:52   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
ActionScript:
  1. this.nextFrame();
...falls in dem MC einen Frame weiter - sonst halt die entsprechende Pfadangabe zur Zeitleiste, für die das gelten soll.

Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box

Geändert von rena (29-12-2004 um 14:53 Uhr)
rena ist offline   Mit Zitat antworten
Alt 29-12-2004, 14:56   #3 (permalink)
want some...?
 
Benutzerbild von Chidi
 
Registriert seit: Sep 2002
Ort: Hannover
Beiträge: 223
Hi rena,

this.nextFrame();
hatte ich auch schon versucht, funzte auch nicht.
trotzdem danke.
__________________
Chidi #90
=========================
www.theBecker.de
=========================
Chidi ist offline   Mit Zitat antworten
Alt 29-12-2004, 15:01   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. this.onEnterFrame=function(){
  2.       if (this._x > -2700){
  3.                this._x -= 5;
  4.       }else{
  5.                delete this.onEnterFrame;
  6.                this.gotoAndStop(this._currentframe+1);
  7.         }
  8. }


wobei das schon perfide ist, ineinem enterFRAME den nächsten frame anspringen zu wollen...du solltest dir da vielleicht nochmals gedanken machen...iss ziemlich unsauber


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 29-12-2004, 15:04   #5 (permalink)
want some...?
 
Benutzerbild von Chidi
 
Registriert seit: Sep 2002
Ort: Hannover
Beiträge: 223
Jup Kelor,

der Gedanke überkam mich auch schon.
Denn ich Kille ja den onEnterFrame, aber irgendwie will das nicht funzen.
Wir würdest Du es denn sauberer machen?
__________________
Chidi #90
=========================
www.theBecker.de
=========================
Chidi ist offline   Mit Zitat antworten
Alt 29-12-2004, 15:11   #6 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
erstell nen leeren mc und lasss den im enterframe loopen.
und wenn deine bedingung für den anderen( den jetzigen ) erfüllt ist, dann lass den ins nächste frame hüpfen, lösch den leeren mc wieder und gut iss.

also like:

ActionScript:
  1. this.createEmptyMovieClip('checker',1111);
  2. this['checker'].onEnterFrame = function(){
  3.       var mc = _root.deinMCName;
  4.        if( mc._x > (-2700)){ mc._x -=5;} else {
  5.           delete this.enterFrame;
  6.           mc.gotoAndStop(mc._currentframe+1);
  7.           removeMovieClip('checker');
  8.        }
  9. }

so sollte das gehen, wobei natürlich dein momentaner mc auch nen stop() haben sollte, im aktuellen frame.



greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 30-12-2004, 07:17   #7 (permalink)
want some...?
 
Benutzerbild von Chidi
 
Registriert seit: Sep 2002
Ort: Hannover
Beiträge: 223
Danke Kelor.
werde es mal ausprobieren.
__________________
Chidi #90
=========================
www.theBecker.de
=========================
Chidi ist offline   Mit Zitat antworten
Alt 30-12-2004, 08:16   #8 (permalink)
Verdeckter Ermittler
 
Registriert seit: Oct 2001
Beiträge: 278
Ich würde das nextFrame() mal eine Zeile höher schieben - bevor das enterFrame gelöscht wird, denn sonst kann die Aktion nextFrame() nicht mehr ausgeführt werden.
__________________
pollux
pollux ist offline   Mit Zitat antworten
Alt 30-12-2004, 08:25   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
hat damit aber nix zu tun...
würd mich sehr wundern, da ja nextFrame ne funktion ist, die völlig unabhängig von enterframe läuft.

denn nextFrame heißt übersetzt eigentlich nur:
gotoAndStop(nextFrame)



greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 30-12-2004, 08:33   #10 (permalink)
want some...?
 
Benutzerbild von Chidi
 
Registriert seit: Sep 2002
Ort: Hannover
Beiträge: 223
moin pollux.
das hatte ich vorher auch schon versucht, klappte aber ebenfalls nicht.
Aber, ich habe jetzt die Lösung:
ActionScript:
  1. a2.onEnterFrame=function(){
  2.        if (a2._x > -500){
  3.            a2._x -= 5;
  4.         }else{
  5.             delete a2.onEnterFrame;
  6.             gotoAndStop(2); //Hiermit klappt es wunderbar! Ohne this. und so
  7.          }
  8. }
__________________
Chidi #90
=========================
www.theBecker.de
=========================

Geändert von Chidi (30-12-2004 um 08:42 Uhr)
Chidi ist offline   Mit Zitat antworten
Alt 30-12-2004, 08:36   #11 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
Zitat:
Zitat von pollux
Ich würde das nextFrame() mal eine Zeile höher schieben - bevor das enterFrame gelöscht wird, denn sonst kann die Aktion nextFrame() nicht mehr ausgeführt werden.
@pollux

ich nicht...
wenn du dieinstanznamen anpasst, sollte es funzen..

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 30-12-2004, 08:40   #12 (permalink)
want some...?
 
Benutzerbild von Chidi
 
Registriert seit: Sep 2002
Ort: Hannover
Beiträge: 223
Jup "the binary"
das hatte ich mir dann auch gedacht und schwupp!
Es klappt.

Danke an Alle...;o)
__________________
Chidi #90
=========================
www.theBecker.de
=========================
Chidi ist offline   Mit Zitat antworten
Alt 30-12-2004, 08:44   #13 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. a2.onEnterFrame=function(){
  2.        if (a2._x > -500){
  3.            a2._x -= 5;
  4.         }else{
  5.             delete a2.onEnterFrame;
  6.             gotoAndStop(2); //Hiermit klappt es wunderbar! Ohne this. und so
  7.          }
  8. }


hä???

das kann nicht stimmen!

innerhalb eines events eines mc´s befindest du dich vom scoping auch exakt in diesem !!!
das heißt, dass ein 'this' - innerhalb des events - auch exact auf den mc verweist, dessen event du gerade besuchst!

ergo gibt es kein a2 in a2 und ein gotoAndStop(irgendwas) ohne pfadangabe setzt die hauptzeitleiste in bewegung und NICHT den mc selbst.

außerdem ist ein delete a2.enterFrame syntaktisch völligst falsch, weil - wie oben gesagt - du innerhalb von a2 kein a2 hast.
also stimmt auch da das simple : delete THIS.onEnterFrame;

diese ganze funktion, so wie du sie da jetzt hast, ist ein einziger scherbenhaufen voller fehler!*iss net bös gemeint*
aber außer den klammern stimmt nicht eine zeile daran...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 30-12-2004, 08:54   #14 (permalink)
want some...?
 
Benutzerbild von Chidi
 
Registriert seit: Sep 2002
Ort: Hannover
Beiträge: 223
Hey Kelor.
Ich bin Dir doch nicht bös! ;o)
Kritik ist immer gut...

Also, das alles spielt sich im MC = 'allgemein_mc' ab.
In diesem MC habe ich ein Textblock erstellt und in ein MC namens 'a2' konvertiert. Im MC = 'allgemein_mc' habe ich im ersten Frame diesen Code eingefügt. Das MC = 'a2' habe ich im 'allgemein_mc' plaziert. Und so klappt es.
Alles andere was ich ausprobiert habe ging nicht und glaube mir ich habe alles versucht.

Muß allerdings auch zugeben das ich schon seit 9 Monaten nicht mehr geproggt hatte. Bin gerade wieder dabei rein zu kommen.
__________________
Chidi #90
=========================
www.theBecker.de
=========================
Chidi ist offline   Mit Zitat antworten
Alt 30-12-2004, 09:10   #15 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ok ...verstehe...warum den code direkt in den 'allgemein_mc' reinschreibst entzieht sich zwar meiner kenntnis (da gerade das eventhandling und framebasierende scripten in mx ja den großen vorteil darstellen und man hier ja geil ALLES auf der hzl(hauptzeitleiste) ablegen/programieren kann) - aber nichts desto trotz, wäre folgendes script dann - auch syntaktisch gesehen - korrekt:

ActionScript:
  1. a2.onEnterFrame=function(){
  2.        if (this._x > -500){
  3.            this._x -= 5;
  4.         }else{
  5.             delete this.onEnterFrame;
  6.             this._parent.gotoAndStop(2);
  7.          }
  8. }

legst du das script auf die hauptzeitleiste (wo es eigentlich hin gehören sollte), dann:

ActionScript:
  1. this.allgemein_mc.a2.onEnterFrame=function(){
  2.        if (this._x > -500){
  3.            this._x -= 5;
  4.         }else{
  5.             delete this.onEnterFrame;
  6.             this._parent.gotoAndStop(2); //gleicher pfad wie oben drüber
  7.          }
  8. }


du siehst - außer dem einleitenden pfad zum event sieht der rest exact genauso aus.
alle pfadangaben -iinnerhalb des events - können so erhalten bleiben und verweisen korrekt auf die anvisierten ziele...



greetz

kelor

Geändert von kelor (30-12-2004 um 09:11 Uhr)
kelor 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 15:47 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele