Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-03-2006, 10:27   #1 (permalink)
Neuer User
 
Benutzerbild von lixx
 
Registriert seit: Feb 2006
Beiträge: 159
hitTest unter _lockroot

hi,

ich hätte da mal wieder eine frage. ich komme mir langsam echt blöd vor. aber irgendwie kapier ich die ebenen-verwaltung nicht.

ich setze also im ersten bild einer instanz einen _lockroot, damit es zu keinen konflikten kommt, wenn ich das nocheinmal in einer unteren instanz verwende. ohne funzt es reibungslos, da kenn ich mich mittlerweile schon aus.

aber jetzt steig ich aus. als trace gibt er mir die x und y kords des objektes sowie der maus richtig an, aber sobald ich das ganze in einem hitTest abfrage wird der ankerpunkt des objektes vom objekt selber aus gesetzt und gibt erst true aus, sobald man rechts unten klickt, wo sich das objekt aber nicht befindet.

kann mir da bitte jemand weiterhelfen?

Code:
this._lockroot = true;
var pressed:Boolean = false;

// set popUpMenu
var popUp:MovieClip = this.createEmptyMovieClip('popUp', this.getNextHighestDepth());
var popUpList:MovieClip = this.createEmptyMovieClip('popUpList', this.getNextHighestDepth());

for (var x:Number=0; x<itemsLable.length ;x++) { ... }

var someListener:Object = new Object();

someListener.onMouseDown = function() {
	trace('--------');
	trace(_root.popUp._y);
	trace(_root.popUp._x);
	trace(_root.popUp._xmouse);
	trace(_root.popUp._ymouse);
	trace(_root.popUp.hitTest(_root.popUp._xmouse, _root.popUp._ymouse, true));
}

Mouse.addListener(someListener);
Angehängte Dateien
Dateityp: zip test2.fla.zip (12,6 KB, 4x aufgerufen)
lixx ist offline   Mit Zitat antworten
Alt 09-03-2006, 10:40   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
_lockroot benötigst du wenn überhaupt nur, wenn du deinen Film mit _root-Anweisungen versehen hast und per loadMovie in einen Containerfilm nachlädst. Besser ist aber, die Objektpfade sauber mit relativen Pfadverweisen oder Pfadreferenz-Variablen zu versehen.

Bei deinem hitTest-Problem kann ich dir leider nicht helfen, aber ein hitTest mit gleichzeitiger Abfrage der Positionswerte der Maus innerhalb des Objektes erscheint mir ein wenig merkwürdig. Da wirst du um ein paar weitere traces nicht umhinkommen, evtl. musst du sogar die Positionswerte in andere Koordinatensysteme mit localToGlobal und globalToLocal umrechnen.
  Mit Zitat antworten
Alt 09-03-2006, 13:28   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
hab das jetzt auch nicht getestet.
hitTest arbeitet immer mit globalen werten. da du offensichtlich deine swf dazulädst und mit _lockroot arbeitest ist die 'oberste' instanz _level0.
sollte so gehen:

trace(_root.popUp.hitTest(_level0._xmouse, _level0._ymouse, true));
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 09-03-2006, 14:43   #4 (permalink)
Neuer User
 
Benutzerbild von lixx
 
Registriert seit: Feb 2006
Beiträge: 159
mann, dass mach mich jetzt richtig fertig!
jetzt geht's tatsächlich! und ich dachte immer _root und _level0 ist ein und das selbe

danke !!!
lixx ist offline   Mit Zitat antworten
Alt 09-03-2006, 15:51   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
ich dachte immer _root und _level0 ist ein und das selbe
Ist es auch, aber _root.popUp._xmouse ist etwas anderes als _root._xmouse (oder _level0._xmouse).
  Mit Zitat antworten
Alt 09-03-2006, 17:11   #6 (permalink)
Neuer User
 
Benutzerbild von lixx
 
Registriert seit: Feb 2006
Beiträge: 159
danke jedenfalls für die antwort.
vielleicht bringt mich das jetzt weiter.

lg lixx
lixx ist offline   Mit Zitat antworten
Alt 09-03-2006, 18:18   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
dann überlege mal, warum du ein _lockroot vergeben hasst.
doch wohl, damit dein "was auch immer" ein anderes _root hat als der hauptfilm (warum du das auch immer gemacht haben magst). wäre ja albern, wenn es dann das selbe wäre.

unterschiedliche _levelX'e gibt es nur wenn man "loadMovieNum" verwendet. aber mit oder ohne. das unterste level ist _level0

mit loadMovieNum dazugeladen
_level2 -- _root ist _level2
_level1 -- _root ist _level1
_level0 -- _root ist _level0

in mc's geladen mit loadMovie:
_level0 -- _root ist _level0
_level0.mc1.mc2 -- _root ist bei allen _level0

_level0.mc1.mc2._lockroot=true;
_root von mc2 ist _level0.mc1.mc2
_root von mc1 ist _level0
_root von _level0 ist _level0
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (09-03-2006 um 18:22 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 10-03-2006, 07:54   #8 (permalink)
Neuer User
 
Benutzerbild von lixx
 
Registriert seit: Feb 2006
Beiträge: 159
was mich halt verwirrt hat ist, dass in der beschreibung kein wort von _levelX. steht.

... Stellen Sie sicher, dass sich die Nutzung von _root in Chess.swf nach dem Laden in Games.swf auf _root in Chess.swf (und nicht auf _root in Games.swf) bezieht. ...

Zitat:
Zitat von hgseib
doch wohl, damit dein "was auch immer" ein anderes _root hat als der hauptfilm (warum du das auch immer gemacht haben magst).
das ist eben für ein popup menü das man im film auch mehrmals einsezen können soll. und wenn es sich in einem geladenen film befindet, soll es immer noch funktionieren, auch wenn ein film darunter bereits ein _lockroot gesetzt hat.
lixx ist offline   Mit Zitat antworten
Alt 10-03-2006, 16:32   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
das X ist nur stellvertretend für eine zahl gedacht.
ruf mal das hilfe-fenster auf.
links oben '_level' eingeben, suchen: das steht 10.000 mal in der doku

"..das ist eben für ein popup menü.."
egal. arbeite wenn möglich nicht mit absoluten adressen, sondern mit relativen z.b.:
this._parent._parent._parent.irgendwas
das passt dann immer.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele