Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-10-2005, 20:57   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
HitTest auf einen gedrehten MC

HI,

habe zwei Rechtecke aul MC auf der Bühne. Einer davon ist mit _rotation = 45
gedeht. Den zweiten MC bewege ich mit startDrag.
Nun bekomme ich aber schon außerhalb eine hitTest Meldung.

ActionScript:
  1. mc2._rotation = 45;
  2. //
  3. mc1.onPress = function ()
  4. {
  5.     this.hide_f ();
  6. };
  7. mc1.onRelease = mc1.onReleaseOutside = function ()
  8. {
  9.     delete this.onEnterFrame;
  10.     this.stopDrag ();
  11. };
  12. //
  13. MovieClip.prototype.hide_f = function ()
  14. {
  15.     this.startDrag ();
  16.     this.onEnterFrame = function ()
  17.     {
  18.         if (mc2.hitTest (this))
  19.         {
  20.             trace ("hide");
  21.         }
  22.     };
  23. };
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 16-10-2005, 21:43   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
da schreibste dir wahrscheinlich besser selbst nen hit Test mit hilfe der _x, _y, _width, _height eigenschaften oder auch mit hilfe von getBounds().
bei gedrehten sachen könnte aber auch das zum Problem werden... bin mir nicht sicher...
ansonsten:http://www.tonypa.pri.ee/tbw/start.html

grz
pape
pape ist offline   Mit Zitat antworten
Alt 16-10-2005, 22:06   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
Danke für den Tip.
Hatte ich mir schon gedacht. Wäre auch zu einfach gewesen.
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 16-10-2005, 22:19   #4 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
vielleicht reicht ja schon sowas in der art:
ActionScript:
  1. mc2.onEnterFrame = function () {
  2.     this._y+=0.5;
  3.     var k1 = mc1.getBounds(mc1._parent);
  4.     var k2 = mc2.getBounds(mc2._parent);
  5.     if( mc2.hitTest(k1.xMin, k1.yMin, true) ||
  6.         mc2.hitTest(k1.xMax, k1.yMin, true) ||
  7.         mc2.hitTest(k1.xMax, k1.yMax, true) ||
  8.         mc2.hitTest(k1.xMin, k1.yMax, true) ||
  9.         mc1.hitTest(k2.xMin, k2.yMin, true) ||
  10.         mc1.hitTest(k2.xMax, k2.yMin, true) ||
  11.         mc1.hitTest(k2.xMax, k2.yMax, true) ||
  12.         mc1.hitTest(k2.xMix, k2.yMax, true)) {
  13.             trace("hit");
  14.     }
  15. }

mfg
pape
pape ist offline   Mit Zitat antworten
Alt 16-10-2005, 22:28   #5 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hab dir kurz nen proto geschrieben:
ActionScript:
  1. MovieClip.prototype.hit = function (mc) {
  2.     var k1 = this.getBounds(this._parent);
  3.     var k2 = mc.getBounds(mc._parent);
  4.     return ((k1.xMin>k2.xMin && k1.xMin<k2.xMax && k1.yMin>k2.yMin && k1.yMin<k2.yMax ||
  5.         k1.xMax>k2.xMin && k1.xMax<k2.xMax && k1.yMin>k2.yMin && k1.yMin<k2.yMax ||
  6.         k1.xMax>k2.xMin && k1.xMax<k2.xMax && k1.yMax>k2.yMin && k1.yMax<k2.yMax ||
  7.         k1.xMin>k2.xMin && k1.xMin<k2.xMax && k1.yMax>k2.yMin && k1.yMax<k2.yMax) ||
  8.         (k2.xMin>k1.xMin && k2.xMin<k1.xMax && k2.yMin>k1.yMin && k2.yMin<k1.yMax ||
  9.         k2.xMax>k1.xMin && k2.xMax<k1.xMax && k2.yMin>k1.yMin && k2.yMin<k1.yMax ||
  10.         k2.xMax>k1.xMin && k2.xMax<k1.xMax && k2.yMax>k1.yMin && k2.yMax<k1.yMax ||
  11.         k2.xMin>k1.xMin && k2.xMin<k1.xMax && k2.yMax>k1.yMin && k2.yMax<k1.yMax))
  12. }
  13. //bsp anwendung: ein mc fährt von oben auf einen anderen zu
  14. mc2.onEnterFrame = function () {
  15.     this._y += 1;
  16.     trace(this.hit(this._parent.mc1));
  17. }
hoffe, dass du damit was angfangen kannst.. aber bei mir geht's mit rotierten mc's und dieser hit abfrage.

Probleme gibt's nur wenn beie mc's rotiert werden.

grz
pape

Geändert von pape (16-10-2005 um 22:29 Uhr)
pape 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 16:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele