 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
23.12.2005, 17:40
|
#1
|
|
TP-Junior
Registriert seit: Sep 2004
|
loadClip() und hitTest() / Mouse Probleme
Hi Leute,
ich hab da schon wieder ein AS-Problem...
Hab eine SWF in der man mehrere MovieClips anklicken kann. Das ganze wird dann mit onMouseDown = function ... abgefagen und mit hitTest() ausgewertet.
Das geht ganz gut.
In dem Moment, wo ich dieses SWF mit loadClip in meinen Hauptfilm lade, funktioniert die Mausauswertung nicht mehr korrekt. Ich hab dabei zwar lockroot = true gesetzt. Aber totzdem geht's irgendwie nicht.
Die Koordinaten stimmen nicht mehr überein.
Hat jemand da vieleicht eine Ahnung, wie man ein solches Probelm umgehen kann??
Vielen Dank im Voraus und beste Grüße
|
|
|
29.12.2005, 17:10
|
#2
|
|
TP-Junior
Registriert seit: Sep 2004
|
Ach Leute, ich bin am Verzweifeln!
Ich habe immer noch das gleiche Problem und sitze heute schon wieder seit Stunden dran!!
Ich habe mal ein Beispiel hochgeladen. Vieleicht kann sich das mal jemand von euch in einer freien Minute angucken.
Es geht darum: wenn das glebe Quadrat angeklickt wird soll's eine Ausgabe geben. Das funktioniert einwandfrei.
Wenn ich jetzt aber diese SWF in eine andere SWF einbette (loadClip) und dann lockroot = true einstelle, dann funktioniert's nicht mehr. Is ein bischen schwer zu beschreiben. Ich habe außerdem herausgefunden, dass es funktioniert, wenn ich die SWF an die Position 0/0 lade... Keine Ahnung ob das bei der Problem-Eingrenzung hilft.
Bitte, bitte, ich wär wirklich dankbar, wenn sich das mal jemand ansehen könnte.
bis dann.
|
|
|
30.12.2005, 09:08
|
#3
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo
das nächste mal, poste bitte sofort eine Fla das macht die Sache für uns einfacher  und dann muss ich mich etwas entschuldigen, weil ich dich einfach Vergessen hatte *sorry*
So und noch eins, ich kriege ein Foto von dir, wie du dich selber in den Hintern beißt wenn du die Lösung siehst
Du hast diese Zeile in deinem Film
mc._lockroot = true;
ersetze sie mal mit
this._lockroot = true;
und teste 
|
|
|
30.12.2005, 13:39
|
#4
|
|
TP-Junior
Registriert seit: Sep 2004
|
ich geb's ja zu, die fla wär schon im ersten posting sinnvoll gewesen....
na ja auf jeden Fall vielen Dank für deine Hilfe. Das Problem ist leider, dass ich "mc._lockroot = true" absichtlich geschrieben habe.
Man kann lockroot auch ganz weglassen, dann funktioniert die Ausgabe auch einwandfrei. "mc._lockroot = true" ist aber nötig, wenn ich mich im import.fla auf _root beziehe. Ich habe da nochmal was vorbereitet...
im Import.fla habe ich jetzt ein Textfeld (feld), in das der Quadrat-MovieClip was reinschreiben soll (über _root.feld).
Wenn ich die improt.swf dann in die load.swf lade, dann muss natürlich "mc._lockroot = true" sein damit das noch funktioniert. (oder sehe ich das falsch???) Wenn aber "mc._lockroot = true" ist, dann funktioniert der hittest nicht mehr korrekt. (was ich auch gar nicht verstehe!!)
|
|
|
07.01.2006, 22:53
|
#5
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Nur mal die Hilfe genauer betrachten 
Kommentare im Code (beide files) sollten den Rest klären.
|
|
|
08.01.2006, 12:52
|
#6
|
|
TP-Junior
Registriert seit: Sep 2004
|
danke, für deine hilfe.
A B E R:
Sooo einfach ist es glaube ich nicht: wenn ich in der include.swf nicht _root sondern _parent benutze (wie du vorschlägst), dann brauche ich _lockroot ja überhaupt nicht! Natürlich hast du das Problem damit gekonnt umgangen...
Aber ich lerne gerade ActionScript und würde gerne verstehen, warum manche Sachen nicht so funktionieren, wie sie müssten (bzw. wie ich denke)
So wie ich das verstanden habe ist lockroot doch genau für den Fall da, dass eine Datei, die included wird sich immer noch auf ihr eigenes _root bezieht (und desswegen eben NICHT auf "_parent" oder "_parent._parent" usw. geändert werden muss). Das klappt ja eigentlich auch. Nur in Verbindung mit xmouse usw. nicht richtig.
Ach so: und bei mir macht es, soweit ich sehen konnte, keinen Unterschied ob ich das _lockroot direkt setze oder in ein "onload" packe oder schon in der include-Datei setze. Das Verhalten ändert sich dadurch nicht.
Hätte nicht gedacht, dass das so ein exotisches Problem ist... Aber danke, dass ich nicht aufgebt!
bis dann...
|
|
|
08.01.2006, 13:57
|
#7
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
So dann gehen wir mal logisch vor.
Als erstes
mc._lockroot = true;
bringt nix.
Du musst schon mit dem onLoad befehl arbeiten.
So dann das mit _parent und _root für das Textfeld.
Du hast es soweit schon richtig erkannt, dass mc dann die Funktion von _root hat.
_parent habe ich auch deshalb genommen, weil es weitaus dyn. ist als _root.
Immerhin liegt das Textfeld eine Stufe höher als das MC in dem das AS liegt.
Wenn man nun noch weitere Verschachtelungen macht, dann ist dort auch eine Änderung nötig, wenn man _root einsetzt, bei _parent nicht.
OK, willst du hier mit _root arbeiten, dann muss die Var für das Textfeld auch angepasst werden und zwar nicht nur feld, sondern _root.feld.
Mit _lockroot sagt man ja nur, auf welches mc sich _root beziehen soll, aber die Var des Textfeldes liegt immer noch in mc, daher haut das so nicht hin.
Mit der Lösung bin ich übrigends das lockroot-Problem nicht geschickt umgangen. Schau dir mal den Trace von hitTest mit den unterschiedlichen Lösungen an 
|
|
|
08.01.2006, 15:05
|
#8
|
|
TP-Junior
Registriert seit: Sep 2004
|
danke, dass du dir so viel mühe gibst! aber ich kapier es einfach nicht!!
also 1.
Zitat:
|
mc._lockroot = true; bringt nix.
|
wieso nicht?
angenommen ich habe im include _root.feld = "irgendwas". (so wie gehabt)
im load schreibe ich dann mc._lockroot = true; --> ausgabe funktioniert.
mc._lockroot = false; --> ausgabe funktioniert nicht.
so habe ich's auch in einem Lehrbuch gesehen.
2.
Zitat:
|
Mit _lockroot sagt man ja nur, auf welches mc sich _root beziehen soll, aber die Var des Textfeldes liegt immer noch in mc, daher haut das so nicht hin
|
Versteh ich nicht. Denn wenn ich lockroot = true habe, dann bezieht sich doch _root auf den mc. und "feld" liegt nun mal im root von mc. Das funktioniert ja auch.
Das Problem ist folgendes: bei lockroot = false fuktioniert der hittest einwandfrei. allerdings gibts keine Ausgabe in das Textfeld (ist ja auch klar, weil das Textfeld im _root vom include liegt und nicht im _root von loader).
bei lockroot = true funktioniert die Ausgabe mit in das Textfeld wie gesagt bestens. aber der hittest funktioniert nicht. bei lockroot = true funktioniert der hittest nur, wenn mc am Punkt (0/0) positioniert wird. Voll verrückt.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:57 Uhr.
|
 |