Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-04-2005, 11:03   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 15
Mausverfolger nur in bestimmten bereich und wieder zurückfedern

zuerst einmal bin ich noch ein totaler flash noob.

deshalb hoffe ich hier kann mir jemand helfen. ich habe einen kleinen mausverfolger gebastelt.

der funktioniert auch prächtig und bewegt sich auch nur innerhalb eines bestimmten bereichs.

jedoch folgt er der maus immer, egal ob die maus sich in dem begrenzten bereich befindet oder nicht.

wie kann ich nun sagen, dass der verfolger sich nur z.b. innerhalb eines kreises an die maus heftet und das auch nur, wenn sich die maus in dem bereich des kreises befindet?

das wäre mein erstes problem.

das zweite wäre dann der nächste schritt. sobald die maus die begrenzung verlässt, soll der verfolger wieder sanft in die mitte des kreises zurückfedern.

kann mir dabei jemand helfen?
wenn es geht schön einfach erklären, sonst versteh ich es eh nicht. ^^


btw. sämtliche zip anhänge in diesem forum kann ich nicht öffen. woran kann das liegen?
godmichi ist offline   Mit Zitat antworten
Alt 25-04-2005, 11:33   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Das ganze lässt sich mit hitTest bewerkställigen.
Ich fang mal ganz von vorne an.

1. Erstelle dir einen Kreis und konvertiere diesen zum MC (F8).
2. Erstelle dir eine Form die später als Mausverfolger dienen soll und konvertiere auch diesen zum MC.
3. Ziehe beide auf die Bühne in den ersten Frame der Hauptzeitleiste und vergib jeweils einen Instance-Name z. B. area_mc, follow_mc (unten links Eigenschafts-Bedienfeld).
4. Erstelle eine Neue Ebene (Aktion) und wähle den ersten Frame an. Hier kommt dann folgendes Skript rein.
ActionScript:
  1. onMouseMove=function(){
  2.    // : wenn Maus ueber Area-MC
  3.    if(_root.area_mc.hitTest(_root._xmouse, _root._xmouse, false)){
  4.       _root.follow_mc.onEnterFrame=function(){
  5.          this._x+=this._xmouse/4;
  6.          this._y+=this._ymouse/4
  7.          // : wenn MC an gleicher Pos wie Maus
  8.          if(this._x==this._xmouse){
  9.             // : loesche oEF
  10.              delete this.onEnterFrame
  11.          }
  12.       }
  13.    }
  14. }
Hab das ganze aber noch nicht getestet.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 25-04-2005, 12:43   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 15
der mc folgt zwar der maus, allerdigns über die ganze page.

hat also nicht ganz geklappt
godmichi ist offline   Mit Zitat antworten
Alt 25-04-2005, 14:31   #4 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Hier mal ne etwas andere Variante.
ActionScript:
  1. onMouseMove = function () {
  2.     if (_root.area_mc.hitTest(_root._xmouse, _root._xmouse, false)) {
  3.         _root.follow_mc.moveIt(this._xmouse, this._ymouse, 2);
  4.         trace("drinnen");
  5.     } else {
  6.         _root.follow_mc.moveIt(_root.area_mc._x, _root.area_mc._y, 4);
  7.         trace("draussen");
  8.     }
  9. };
  10. MovieClip.prototype.moveIt = function(targetX, targetY, delay) {
  11.     if (this._x != targetX || this._y != targetY) {
  12.         this.onEnterFrame = function() {
  13.             var difX = -this._x+targetX;
  14.             var difY = -this._y+targetY;
  15.             if (Math.round(Math.abs(difX))>0 || Math.round(Math.abs(difY))>0) {
  16.                 this._x += difX/delay;
  17.                 this._y += difY/delay;
  18.             } else {
  19.                 this._x = targetX;
  20.                 this._y = targetY;
  21.                 delete this.onEnterFrame;
  22.             }
  23.         };
  24.     }
  25. };
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (25-04-2005 um 15:14 Uhr)
psyk 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:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele