| |||||||
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) |
| AIRcrobat Registriert seit: Mar 2009 Ort: München
Beiträge: 78
| Hallo Community, bin neu hier und hoffe mal auf eure Hilfe ![]() Ich hab mich jetzt 2 Tage durch alle möglichen Foren und Hilfen gewühlt, aber ich komm leider nicht auf die Lösung ![]() Situation: Ich lese ein XML ein, das mehrere Werte (x, y, width, height) beinhaltet. Wenn die eingelesen sind, erstelle ich in einer for-Schleife für jedes Element zwei MCs (einer wird angezeigt und der andere dient als Kollisionsfeld und liegt über dem ersten). Des weiteren existiert bereits ein MC 'box' (hier im Beispiel statisch; In der richtigen Anwendung wird dieser MC durch Mausziehen erzeugt). Da in der XML mehrere Elemente stehen werden, wollte ich diese in ein Array schreiben (oder zumindest die Namen, aber ging auch nicht) um dann zu überprüfen ob diese erstellten mit dem MC 'box' kollidieren. Doch soweit komm ich gar nicht erst. Da mir immer 'undefined' ausgegeben wird. Ich weiss, dass es an der Übergabe des dynamisch erstellten Namen des MC scheitert, denn wenn ich händisch die Namen vergeb, funktioniert es. Mir ist klar was Arrays sind und wie diese funktionieren, aber wie das mit MCs funktioniert hab ich noch nicht ganz überrissen ![]() Auch mit eval() komm ich hier irgendwie nicht weiter. Frage: 1. Wie vergeb ich am vernünftigsten die Namen der dyn. erstellten MCs? 2. Wie soll ich die am besten in ein Array speichern? Nur die Namen oder das ganze MC? 3. Wie kann ich auf die Elemente im Array zugreiffen, so dass ich hitTest() verwenden kann? Mein gesamter, aktuelles AS2 Code: PHP-Code: XML Datei PHP-Code: Code: Ausgabe1: undefined Länge: 1 Ausgabe2: undefined No Hit Ausgabe2: undefined No Hit ... Vielen Dank schon mal! Lg, Tom Geändert von TheChucky (08-04-2009 um 13:46 Uhr) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Oct 2008
Beiträge: 39
|
genau das gleiche prob habe ich auch....bzw. sind immer wieder die dynamischen sachen ein prob. .... probier das ganze mit MC.ID = i; in der schleife....weiß jt nicht wie und ob dich das weiterbringt...ich freu mich schon auf eine kompetente antwort auf dieses thema
|
| | |
| | #3 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Du hattest ein kleines Problem mit Pfaden, ich hab jetzt alles auf die Timeline getackert, ("var tl:MovieClip = this;") und doe Box an die Mouse geklebt, das man den Hit auch testen kann! PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #4 (permalink) |
| AIRcrobat Registriert seit: Mar 2009 Ort: München
Beiträge: 78
|
Hey RustyCake super vielen Dank ![]() Es funktioniert wunderbar, doch ganz hab ich das noch nicht verstanden. Was ist der Unterschied zwischen "tl.createEmptyMovieClip(...)" und "this.createEmptyMovieClip(...)"? Auf was bezieht sich das "this" dann? Schönen Gruß aus München, Tom |
| | |
| | #5 (permalink) | |
| voidboy Registriert seit: Sep 2004 Ort: München
Beiträge: 5.588
| Zitat:
Das this bezieht sich auf dein XML Objekt, tl dagegen ist der MovieClip in dem du den Code "gelegt" hast. | |
| | |
| | #7 (permalink) |
| AIRcrobat Registriert seit: Mar 2009 Ort: München
Beiträge: 78
|
So, bin ein gutes Stück weiter, aber nun hänge ich wieder an einer "undefined"-Stelle fest. Ich möchte nun, wenn ich mit der Maus über eine der Boxen fahre eine Funktion aufrufen, bzw. etwas machen (Kleine Infobox mit einem Text anzeigen). Doch komischerweise funktioniert "collitionArray[i]" unten bei der Kollisionsabfrage wunderbar, beim onRollOver jedoch nicht. Woran liegt das? Performancefrage: Wie ihr seht frage ich bei jeder Mausbewegung in mehreren for-Schleifen ab, ob die Maus irgendwo drüber ist und ob eine Kollision vorhanden ist. Wenn ich mir vorstelle, das ich später mal vielleicht 100 und mehr Einträge in so einem Array hab, wird das ganze doch ziemlich langsam oder nicht? Kennt ihr vielleicht eine bessere Alternative so etwas "gezielter" und effektiver abzufragen? Meins ist ja eher die Brutal-Methode ![]() Quelltext ist der gleiche wie oben, nur wurde er um folgendes erweitert: PHP-Code: Tom |
| | |
| | #8 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
| PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #10 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Du kannst z.B. bei - sagen wir mal 100 MCs - jeweils 25 Stück in einen weiteren MC verpacken. Dann machst du erstmal den hitTest nur für diese 4 "großen" MCs und erst wenn davon einer berührt wurde, "guckst du da rein" welcher MC konkret es war.
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #12 (permalink) | |
| AIRcrobat Registriert seit: Mar 2009 Ort: München
Beiträge: 78
| Zitat:
AS2 Code: PHP-Code: Der grüne Quader folgt der Maus und sollte eigentlich erst auslösen, wenn er auf einen der anderen roten Quader trifft und nicht auf den rosa Bereich des übergeordneten MCs. ![]() Schönes Osterfest und danke für Tipps, Tom | |
| | |
| | #13 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Du mußt mit eine for-schleife die mc's in dem container abgreifen, und mit denen den hitTest machen
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #14 (permalink) | |
| AIRcrobat Registriert seit: Mar 2009 Ort: München
Beiträge: 78
| Zitat:
Gibts da keine Möglichkeit? Bzw. denkst du nicht, dass das Ganze dann irgendwann sehr langsam wird, wenn ich bei jeder Mausbewegung die Schleife durch sagen wir vielleicht 100 oder 150 MCs laufen lassen muss? Kennst du einen Alternative, wie man sowas "intelligent" lösen kann? Danke | |
| | |
| | #15 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Mit der Mouse kann ich mir nicht vorstellen das es so viel Performance kostet wie mit enterFrame oder setInterval, käme auf eine Test an ![]() Aber Du mußt trotzdem alle enthaltenen mc's eines Containers abgreifen, sonst mach der hit ja keinen sinn
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| array, hittest, kollision, movieclip |
| Themen-Optionen | |
| Ansicht | |
| |