Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-10-2005, 10:45   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 5
MC abhängig von Position eines anderen MC

Hallo zusammen,

ich möchte mit Hilfe des "zeiger_mc", der sich mit dem "movieclip_mc" bewegt, einen Movieclip ("textbox_mc") über die Positionsangaben des Zeigers steuern.

Mein Problem ist, dass etwas mit der Bedingung nicht stimmt. Rein logisch müsste es funktionieren, aber die Y-Position wird, soweit ich das mitbekommen habe, nur nach oben begrenzt und nicht nach unten. Die X-Positionen werden komischerweise in beide Richtungen überprüft.


Hat vielleicht jemand eine Idee, wo hier der Fehler liegen könnte? Zum besseren (oder schlechteren) Verständnis ist hier noch der Quellcode, der auf dem "movieclip_mc" liegt.

ActionScript:
  1. on (press)
  2. {
  3.     this.onEnterFrame = function()
  4.     {
  5.         this.startDrag(false, -150,-350,575,130);
  6.         this._parent.zeiger_mc._x = this._parent.movieclip_mc._x+5;
  7.         this._parent.zeiger_mc._y = this._parent.movieclip_mc._y+7;
  8.         trace("X: " + this._parent.zeiger_mc._x + "     Y: " + this._parent.zeiger_mc._y);
  9.         if (this._parent.zeiger_mc._x >= -145 && this._parent.zeiger_mc._x <= -97 && this._parent.zeiger_mc._y >= -343 && this.parent.zeiger_mc._y <= -303)
  10.         {
  11.             _root.textbox_mc.gotoAndStop(11);
  12.         }
  13.         else if (this._parent.zeiger_mc._x >= -145 && this._parent.zeiger_mc._x <= -96 && this._parent.zeiger_mc._y >= -302 && this.parent.zeiger_mc._y <= -254)
  14.         {
  15.             _root.textbox_mc.gotoAndStop(10);
  16.         }
  17.         else if (this._parent.zeiger_mc._x >= 470 && this._parent.zeiger_mc._x <= 580 && this._parent.zeiger_mc._y >= -125 && this.parent.zeiger_mc._y <= -100)
  18.         {
  19.             _root.textbox_mc.gotoAndStop(9);
  20.         }
  21.         else if (this._parent.zeiger_mc._x >= -145 && this._parent.zeiger_mc._x <= 200 && this._parent.zeiger_mc._y >= -55 && this.parent.zeiger_mc._y <= -10)
  22.         {
  23.             _root.textbox_mc.gotoAndStop(2);
  24.         }
  25.         else
  26.         {
  27.             _root.textbox_mc.gotoAndStop(1);
  28.         }
  29.     };
  30. }
  31. on (release) {
  32.     this.onEnterFrame = function() {
  33.         this.stopDrag();
  34.         this._parent.zeiger_mc._x = this._parent.movieclip_mc._x+5;
  35.         this._parent.zeiger_mc._y = this._parent.movieclip_mc._y+7;
  36.     };
  37. }

Der movieclip_mc liegt auf 1. Ebene unter _root, genau wie der textbox_mc. Der zeiger_mc befindet sich im movieclip_mc.



Ich freue mich auf die Ideen.

Noti

PS: Mit HitTest habe ich es auch schon probiert, aber das hat auf Grund der vielen verschiedenen Level (?) noch weniger funktioniert.
ficler ist offline   Mit Zitat antworten
Alt 28-10-2005, 12:43   #2 (permalink)
using namespace
 
Benutzerbild von artjom
 
Registriert seit: May 2002
Ort: Hamburg underground
Beiträge: 657
es ist schonmal quatsch, dass du die drag funktion in onEnterFrame hast.
und wenn sich der zeiger_mc in movieclip_mc befindet, und der code auf movieclip liegt, so ist diese anweisung im code falsch:
Code:
this._parent.zeiger_mc
denn hier gehste sozusagen auf "parent" des movieclip_mc. und dort befindet sich der zeiger nicht.

mach ungefähr so:
ActionScript:
  1. on (press)
  2. {
  3.     this.startDrag(false, -150,-350,575,130);
  4.         this.onEnterFrame = function()
  5.         {
  6.                 this.zeiger_mc._x = this._x+5;
  7.                 this.zeiger_mc._y = this._y+7;
  8.                 var nZx=this.zeiger_mc._x;
  9.                 var nZy=this.zeiger_mc._y;
  10.                 if (nZx >= -145 && nZx <= -97 && nZy >= -343 && nZy <= -303)
  11.                         _root.textbox_mc.gotoAndStop(11);
  12.                 else if (nZx>= -145 && nZx <= -96 && nZy >= -302 && nZy <= -254)
  13.                         _root.textbox_mc.gotoAndStop(10);
  14.                     else if (nZx >= 470 && nZx <= 580 && nZy >= -125 && nZy <= -100)
  15.                             _root.textbox_mc.gotoAndStop(9);
  16.                         else if (nZx >= -145 && nZx <= 200 && nZy >= -55 && nZy <= -10)
  17.                                 _root.textbox_mc.gotoAndStop(2);
  18.                             else    _root.textbox_mc.gotoAndStop(1);
  19.         };
  20. }
  21. on (release) {
  22.     this.stopDrag();
  23.         this.onEnterFrame = function() {
  24.                 this.zeiger_mc._x = this._x+5;
  25.                 this.zeiger_mc._y = this._y+7;
  26.         };
  27. }
__________________
artjom.com -|- Melom
Einen PC beschleunigen? Klar, mit 9,81 m/s^2!

Geändert von artjom (28-10-2005 um 12:44 Uhr)
artjom ist offline   Mit Zitat antworten
Alt 28-10-2005, 13:34   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 5
Thumbs up

mensch super danke

habe dank deines scriptes es hinbekommen.

p.s. mein script hätte auch funktioniert wenn ich nicht vergessen hätte

ActionScript:
  1. if (this._parent.zeiger_mc._x >= -145 && this._parent.zeiger_mc._x <= -97 && this._parent.zeiger_mc._y >= -343 && this.parent.zeiger_mc._y <= -303)

bei meiner letzten y Position den _ nach this. zu machen (es haben 3 Personen sich das schon angeschaut und nicht gesehen )


Vielen Dank werde deine Version nehmen, da die ja deutlich eleganter ist

Geändert von ficler (28-10-2005 um 13:35 Uhr)
ficler 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:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele