| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2010
Beiträge: 10
| Hittest an Halbkreis
Hallo Zusammen, ich habe mit Hilfe von Adobe Illustrator eine etwas komplexere Custom-Komponente erstellt. Die Komponente besteht aus insgesamt sieben Layern, welche ich wiederrum als Custom-Komponenten bzw. als Skin(Buttons) definiert habe. Hier mal ein Bild, wie das ganze aussieht: ![]() Zur Funktionalität: Der innere(weiße) Kreis ist lediglich ne Anzeige, momentan ist dafür keine Interaktion vorgesehen. Die Werte für die Textfelder bzw. den Graphen ändern sich je nach dem, welcher Button gedrückt wird. Der Mittlere Kreis, enthält 4 Buttons. Die lediglich per Klick angesprochen werden. Der Äußere Kreis, enthält zwei Pools. Wenn man Objekte über die Pools schiebt, ändert sich die Farbe des Stroke, jeweils Grün oder Rot, wenn das Objekt in den Pool passt oder eben nicht. Wenn man das Objekt dann loslässt, wird der Werte des Objekts dem entsprechenden Pool zugewiesen. Zusätzlich sollen, per Klick auf die Pools, entsprechende Objekte erstellt werden, die dann weiterverwendet werden können. Die gesamte Komponente soll sich drehen, wie ich das realisieren werde, steht noch nicht fest. Soll hier aber auch nicht Thema sein. Die Oben beschriebenen Funktionalitäten habe ich alle schon umgesetzt und sie funktionieren, einzeln, auch halbwegs so wie sie sollen. Das Problem ist, die Kombination von allem und an der Stelle kommt der Hittest ins Spiel. Ich weiss nicht, ob Hittest hier wirklich der richtige Begriff ist, das Problem ist, dass der Bereich in dem man mit den Komponenten interagieren kann, größer ist, als die eigentliche Komponente. Hier mal ein Bild davon, was ich meine: ![]() Wenn ich einen Hittest für den Global Pool 1 mache, dann wird der true, sobald ich an das hellblaue Quadrat stoße. Was mich an den äußeren Grenzen nicht allzu sehr stören würde. Wenn ich allerdings für den Global Pool 1 einen Eventlistener für ein Klick-Event registriere, dann kann ich die vier BUttons im mittleren Kreis nicht mehr anklicken, da ich ja quasi immer auf den Global Pool klicke. Deshalb hier meine Frage, weiss vielleicht jemand eine Möglichkeit den hittest auf den Global Pool zu beschränken? Wenn es einfacher ist, geht auch ein hittest für den gesamten äußeren Ring. |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.147
|
Verstehe ich nicht. Du kannst alle Elemente einzeln "treffen". Ich verstehe dein Problem nicht richtig.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2010
Beiträge: 10
|
Ich möchte folgende zwei Sachen machen: Wenn ich auf einen der Pools klicke, soll ein Event gefeuert werden. Mein Problem ist, dass wenn ich einen Eventlistener für das Click Event direkt an das Pool Objekt hänge, die Fläche auf der das Click Event gefeuert viel zu groß ist. Um genau zu sein, dass große hellbalue Viereck auf dem zweiten Bild. Dadurch werden die Buttons, die weiter innen im Kreis liegen überlagert unc ihc kann sie nicht mehr anklicken. Ich habe auch schon probiert, den Eventlistener an ein Child-Objekt (das Path-Objekt, welches den Schwarzen Hintergrund darstellt) von dem Pool zuhängen. Das funktioniert leider auch nicht. Was ich jetzt noch gerne machen würde ist, einen HitTestObject von einem spark.primitives.path (Der Halbkreis Hintergrund von meinem Pool) und einer spark.primitives.ellipse leider haben beide Objekte keine eingebaute HitTestObject Methode. Hast du dazu evtl. eine Idee? Geändert von Flashneuling12 (17-11-2010 um 15:19 Uhr) Grund: Hatte was verwechselt |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jul 2010
Beiträge: 68
|
Eine etwas umständliche Möglichkeit wäre das Abfangen der Cursor-Position und eine entsprechende Weiterleitung zur zugehörigen Funktion. Müsste auch anders gehen. Ich weiß nicht ganz, ob Flex das unterstützt, aber kann man visuelle Elemente nicht eine Reihenfolge zuordnen? Wenn ja, dann legst du die inneren Elemente auf einer höheren Ebene ab.
|
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Oct 2010
Beiträge: 10
|
Das mit der Reihenfolge habe ich auch schon versucht. Leider bin ich noch nicht allzu firm in der ganzen Flex/AS3 Thematik. Ich habe einfach die Reihenfolge der Child-Objekte in der Klasse für meine gesamte Custom-Komponente geändert. Das hat leider nichts geholfen. Gibts es dafür noch eine andere Möglichkeit? Die Idee mit der Maus-Position ist mir auch schon durch den Kopf gegangen. Allerdings soll am Schluss die gesamte Komponente rotieren, was das Mapping der Maus-Koordinaten auf die Komponente, meiner Meinung nach, erheblich komplexer macht. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash CS3] halbkreis draggen ? | Striker | Flash Einsteiger | 0 | 21-08-2009 15:11 |
| Slider im Halbkreis | lastboyscout69 | Flash MX 2004 | 2 | 20-07-2005 16:35 |
| Halbkreis Bewegung | Melina80 | ActionScript 1 | 8 | 24-11-2004 11:53 |
| Text als Halbkreis | Gayson | Flash MX | 5 | 31-12-2003 13:17 |