{lang: 'de'}
Flashhilfe.de - Flash Community

hitTestObject und hitTestPoint [Flash 9]

 


AntwortenRegistrieren Seite1  

SNUFFSEED#1
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

29.06.2011, 13:48

Hallo Leute,

ich arbeite an einem Solarrechner. Habe ein Problem gehabt mit einer Formel die nicht von mir gelöst werden konnte also habe ich es auf einem anderen Weg versucht, ohne Formel. Ich weiss ist nicht besonders toll aber naja. Geht halt nicht anders. Jetzt habe ich dabei allerdings ein anderes Problem.

Ich habe eine Grafik in einzelne Vektoren nachgezeichnet und diese dann in MCs umgewandelt. Sind die Kreise mit den Prozentangaben wie unter dem Link unten zu sehen ist. Habe dann einen MC gemacht in Form eines Kreises mit einem weitern MC in Form eines Punktes darim. Jetzt dachte ich mir ich kann den grossen KreisMC drehen und die x Koordinate des punktes darin verändern um dann mit hittest auszulesen über welchem Bereich der Karte er sich befindet und so an die Prozente kommen. Denkste habe da wohl nen Denkfehler drinnen. Hier mal der entsprechende Codeschnipsel.

   
ActionScript:
1
2
3
4
5
6
function get_performance_percent(){
                var current_percent_map = solar_percent_map.solar_percent_map_95;
                var disc = solar_percent_map.solar_percent_map_disc_deformed.solar_percent_map_disc;
                var drop = solar_percent_map.solar_percent_map_disc_deformed.solar_percent_map_disc.solar_percent_map_drop;
                trace(current_percent_map.hitTestPoint(drop.x, drop.y, true));
             }


bei hitTestObject habe ich das Problem das nicht die Kreise an sich sondern die Rahmen erkannt werden. Komischerweis funktioniert es aber damit. Nur halt nicht an den Objektkanten sondern den Rahmen.

Hier mal mein bisheriges Unterfangen --> http://www.green-future-energy.de/Solarrechner.swf

p.s. die Scheibe mit den Prozenten und der Punkt etc. sind nachher nicht sichtbar.
valuee#2
Benutzerbild von valuee
Beiträge: 133
Wohnort: Straight Outta Berlin-City
Registriert: Aug 2006

29.06.2011, 14:24

Hallo,

mal auf die Schnelle: ich schätze dein Problem ist, dass jeder MovieClip ein eigenes Koordinatensystem mitbringt. Die Funktionen localToGlobal und globalToLocal könnten dir vielleicht helfen.

Verstehe ich das richtig, dass du das alles nur machst, um an die Daten (die %-Werte) zu kommen und die Visualisierung nur Mittel zum Zweck ist? Wenn ja, dann würde ich die Daten auch in Daten-Objekten halten. Dein Bild ist ja eigentlich nichts anderes als eine Tabelle. Da würde doch ein zweidimensionales Array passen.

meineDaten[xx][yy]
SNUFFSEED#3
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

Themenautor/in

29.06.2011, 14:30

In ein Array? Wäre das nicht etwas ungenau da die Prozente ja in Kreisen dargestellt sind? Müsste denke ich mal ein ziemlich heftiges Array sein wenn die Werte möglichst genau sein sollen. Oder habe ich das falsch verstanden. Mit dem "Aufrastern und in ein Array packen" habe ich mir auch gedacht, nur halt die Genauigkeit geht dann flöten. globalToLocal etc. habe ich mir schon angeschaut habe es aber net so ganz umsetzen können. Hat jedenfalls nicht so ganz gefunzt bei mir. Schaue ich mir aber nochmal an. Danke schonmal für den Vorschlag.

Falls das mit dem Array anders gemeint war als ich es verstanden habe erleutere es mir bitte nochmal genauer. Danke.
SNUFFSEED#4
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

Themenautor/in

29.06.2011, 14:35

Jedes mal wenn ich einen Movieclip mit localToGlobal auslesen will geht es nicht(NOOB?). Ich habe glaube ich es so verstanden das ein Point Object erzeugt werden muss. Ist das richtig? Wie wende ich das auf einen MC an?
valuee#5
Benutzerbild von valuee
Beiträge: 133
Wohnort: Straight Outta Berlin-City
Registriert: Aug 2006

29.06.2011, 14:36

Aber es gibt doch eh ein Raster, oder?

Ich sehe da eine Tabelle mit 19 Zeile und 19 Spalten. Hast du denn innerhalb der Kästen noch Zwischenwerte? Ist für mich nicht erkennbar.
valuee#6
Benutzerbild von valuee
Beiträge: 133
Wohnort: Straight Outta Berlin-City
Registriert: Aug 2006

29.06.2011, 14:44

localToGlobal dient dazu, Positionen aus einem lokalen Koordinatensystem, in das globale Koordinatensystem umzuwandeln.

var localPoint:Point = new Point(mc.x, mc.y);
var globalPoint:Point = mc.localToGlobal(localPoint);
SNUFFSEED#7
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

Themenautor/in

29.06.2011, 15:23

So, habe ich umsetzen können mit dem Punkt. Die Ausgabe zeigt mir die globalen Coord des Punktes an. Nur muss ich die Coord der einzelnen runden MCs auch globaliesieren oder? Jedenfalls klappt die Abfrage der Kollision so halb/halb. So habe ich es bis jetzt.

ActionScript:
1
2
3
4
            var actual_percent_map = root['solar_percent_map_' + 90];
            var clickPoint:Point = new Point(drop.x, drop.y);            
            var coord = drop.localToGlobal(clickPoint);
            trace(actual_percent_map.hitTestPoint(coord.x,coord.y,true));
Geändert von SNUFFSEED am 29.06.11 um 15:23 Uhr
valuee#8
Benutzerbild von valuee
Beiträge: 133
Wohnort: Straight Outta Berlin-City
Registriert: Aug 2006

29.06.2011, 15:37

- dein Punkt liegt ja in einem MC mit einem Koordinatensystem, sagen wir MC1, dort hat er die Koordinaten p1
- mit localToGlobal (aufrufen in MC1) wandelst du diese Koordinaten in das Koordinatensystem von root um, nun hast du p2
- dein hit-test-mc liegt ja vielleicht nicht in root, sondern in einem weiteren MC, sagen wir MC3. dann musst du mc3.globalToLocal(p2) aufrufen und bekommst p3
- p3 kannst du dann für das hitTest benutzen

dort könnte das problem liegen, aber ganz sicher bin ich mir nicht.
SNUFFSEED#9
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

Themenautor/in

29.06.2011, 16:58

Danke Danke Danke. Habe es geschafft dank Deiner Hilfe.....SCHLEIM. Nein ehrlich, funktioniert. War vom falschen MC beim hitTest ausgegangen. Mann endlich. Jetzt kann ich es fertigstellen.

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de