Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-02-2004, 15:35   #1 (permalink)
viel hilft viel
 
Benutzerbild von nox1mus
 
Registriert seit: Nov 2003
Ort: nürnberg
Beiträge: 270
bewegungs funktion verschiebt bühne und nicht MC

hi, ich habe folgende function:
ActionScript:
  1. function xMove() {
  2.     if (this._x<1050) {
  3.         this._x += 10;
  4.     } else if (this._x>1030) {
  5.         this._x = 250;
  6.     }
  7. }
und rufe sie von einem MC mit enterFrame auf.
funzt auch, abgesehen davon, dass es den gesamten bühneninhalt verschiebt, anstatt nur den MC so wie es sein soll.

hat jemand nen tip?

danke euch im vorraus,
euer nox
__________________
|>>pass me the nervegas<<|
nox1mus ist offline   Mit Zitat antworten
Alt 18-02-2004, 15:39   #2 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
....

hallo

is ja klar ... this besieht sich auf "this" also diese bühne nict de mc

ActionScript:
  1. function xMove() {
  2.         if (this._x<1050) {
  3.                 this._x += 10;
  4.         } else if (this._x>1030) {
  5.                 this._x = 250;
  6.         }
  7. }

so wird ein schuh draus:

mc_name must du übergeben

ActionScript:
  1. function xMove(mc_name) {
  2.         if (this[""+mc_name]._x<1050) {
  3.                 this[""+mc_name]._x += 10;
  4.         } else if (this[""+mc_name]._x>1030) {
  5.                 this[""+mc_name]._x = 250;
  6.         }
  7. }


gruß makese
makese ist offline   Mit Zitat antworten
Alt 18-02-2004, 15:42   #3 (permalink)
viel hilft viel
 
Benutzerbild von nox1mus
 
Registriert seit: Nov 2003
Ort: nürnberg
Beiträge: 270
wow, schnelle antwort, leider hilft sie mir nur bedingt, ich will die function ja von mehreren mc aus aufrufen, also kann ich keinen festen mcNamen vergeben...
__________________
|>>pass me the nervegas<<|
nox1mus ist offline   Mit Zitat antworten
Alt 18-02-2004, 15:43   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi,

ich gehe mal davon aus, dass die Funktion auf _root liegt und du sie im onEnterFrame in etwa so aufrufst: _root.xMove()?

Da die Funktion auf _root liegt, bezieht sich "this" in der Funktion auch auf _root.

Du könntest den MovieClip, den du verschieben möchtest als Argument an die Funktion xMove übergeben:
ActionScript:
  1. // Funktion auf _root
  2. function xMove(mc) {
  3.         if (mc._x<1050) {
  4.                 mc._x += 10;
  5.         } else if (mc._x>1030) {
  6.                 mc._x = 250;
  7.         }
  8. }
  9.  
  10. // Aktion onEnterFrame
  11. onClipEvent(enterFrame){
  12. _root.xMove(this);
  13. }
gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:04   #5 (permalink)
viel hilft viel
 
Benutzerbild von nox1mus
 
Registriert seit: Nov 2003
Ort: nürnberg
Beiträge: 270
wenn ich dich richtig verstehe ist mc der instanzname und dann brauch ich wieder für jeden mc eine function, dann kann ich sie auch ohne function direkt auf den mc schreiben...
__________________
|>>pass me the nervegas<<|
nox1mus ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:09   #6 (permalink)
viel hilft viel
 
Benutzerbild von nox1mus
 
Registriert seit: Nov 2003
Ort: nürnberg
Beiträge: 270
juhu lösung gefunden, ich habe einfach allen mc's den selben instanznamen gegeben, war an der position grade machbar.

tausend dank,
euer nox
__________________
|>>pass me the nervegas<<|
nox1mus ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:11   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
nö, eben nicht.

mc ist eine Referenz zu dem MovieClip, der die funktion aufruft.

Schau dir noch mal den ClipEvent an:
ActionScript:
  1. onClipEvent(enterFrame){
  2. _root.xMove(this);
  3. }
Wie du siehst wird da "this" an die Funktion übergeben. Der Aufruf sieht in jedem MovieClip gleich aus, egal wie er heißt.

gruß,
roman

---

*whew*
alle Instanzen gleich benennen?
Da wär ich etwas vorsichtig!

Geändert von romän (18-02-2004 um 16:12 Uhr)
romän ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:12   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 112
//edit: Ja stimmt, romän...sorry, da hab ich nicht aufgepasst. ;-)deins ist schon richtig.

Geändert von cyberboy (18-02-2004 um 16:20 Uhr)
cyberboy ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:14   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
@cyberboy:
naja, so weit war er ja schon...
Außerdem geht's so nicht (siehe meine erste Antwort)

gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:28   #10 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
...

kurz nochmal erklärt:
ActionScript:
  1. function xMove(mc_name) {
  2.         if (this[""+mc_name]._x<1050) {
  3.                 this[""+mc_name]._x += 10;
  4.         } else if (this[""+mc_name]._x>1030) {
  5.                 this[""+mc_name]._x = 250;
  6.         }
  7. }
  8.  
  9. xmove("mc1")
  10. xmove("mc2")
  11. xmove("mc3")

so "mc1" wird an die fucntion übergeben

this[""+mc_name] macht nicht weiter als den übergeben namen einzusetzen so das sowas raus kommt this.mc1 oder this.mc2


gruß makese
makese ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:29   #11 (permalink)
viel hilft viel
 
Benutzerbild von nox1mus
 
Registriert seit: Nov 2003
Ort: nürnberg
Beiträge: 270
ja noch cooler.
leider hab ich bei AS ein gefährliches Halbwissen

dann nochmals danke
__________________
|>>pass me the nervegas<<|
nox1mus ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:36   #12 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Oder mit sowas!!

ActionScript:
  1. MovieClip.prototype.beweg = function() {
  2.     this.onEnterFrame=function(){
  3.     if (this._x<1050) {
  4.         this._x += 10;
  5.     } else if (this._x>=1030) {
  6.         this._x = 250;
  7.     }
  8.     }
  9. };
  10. for(i=1; i<=10; i++){
  11.     this["mc"+i].beweg();
  12.     trace(i);
  13. }
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:37   #13 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
romän ist offline   Mit Zitat antworten
Alt 18-02-2004, 16:43   #14 (permalink)
viel hilft viel
 
Benutzerbild von nox1mus
 
Registriert seit: Nov 2003
Ort: nürnberg
Beiträge: 270
ich war fast dran es zu verstehen, aber ich muss wohl erst gehen lernen
__________________
|>>pass me the nervegas<<|
nox1mus 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 20:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele