| |||||||
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: Dec 2010
Beiträge: 61
| AS2 movieclips ansprechen nach größe einer variablen
Hallo Leute ich hoffe ihr könnt mir helfen. (Bin leider noch Anfänger was AS angeht). Und zwar habe ich (z.B.) 3 MCs auf der Bühne platziert, wobei jeder einen Instanznamen in der Form hat: b1, b2, b3...usw. Da ich leider von Arrays keinen Plan habe (ich mir aber vorstellen kann dass man die dafür braucht) wollte ich über einen anderen Weg versuchen ans Ziel zu kommen. Mein Ziel ist es, dass wenn ich mit der Maus über einen MC drüberfahre alle anderen MCs ausgefaded also _alpha-=5; werden und wieder eingefaded werden sobald ich vom MC wieder "runtergehe". ich dachte mir erst, dass man das halt in ähnlicher form machen kann: var i; var darueber; onEnterFrame=function(){ if(darueber!=1000){ for(i<darueber,i>darueber){ this["b"+i]._alpha-=5;}} Erklärung: wenn ich auf einen movieclip gehe wird "darueber" auf den wert der variable i gesetzt, d.h. bei bild "b1" wird i und darueber auf 1 gesetzt. das "darueber" ist nur dafür da um zu erkennen, ob die maus auf einem MC liegt. so und nun möchte ich die beiden anderen ausblenden bzw. alle wo i!=darüber. ich weiß, dass das mit der for-schleife, wie ober hingeschrieben, falsch ist. aber ich weiß nicht wie es richtig geht. Ich hoffe ihr habt meine chaotische Erklärung verstanden danke schonmal.
|
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Sep 2010
Beiträge: 44
|
Also ich versuchs mal zu übersetzten: Du hast 3 MCs auf der Stage. Wenn man mit der Mouse über einen drüber geht sollen jeweils die anderen ausgefadet werden. Und wenn du wieder aus dem MC raus gehst dann sollen sie wieder einfaden. Ist das so in grob richtig? Leider hab ich momentan nur die AS3 Befehle im Kopf: MouseOver, MouseOut sind da schonmal die Zauberwörter für die EListener. Code: on (rollOver) {
}
on (rollOut) {
} naja das ist das was ich dazu beisteuern kann vllt findet sich ja noch ein AS2'ler Edit: Versuche deine Fragen immer präzise und knapp zu halten! Der Rest verwirrt nur. Geändert von rushed (16-02-2011 um 14:47 Uhr) |
| | |
| | #3 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
So in etwa. 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) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 61
|
danke leute...ich habs inzwischen schon rausgefunden bzw. von meinem bruder erklären lassen ^^. sieht dann wie folgt aus: var i; _global.current = 100; onEnterFrame = function () { if (current != 100) { for (var i = 1; i<=20; i++) { if (i != current and this["b"+i]._alpha >=20) { this["b"+i]._alpha -= 5; } } } if(current==100){ for(i=1;i<=20; i++){ if(this["b"+i]._alpha <=100) this["b"+i]._alpha += 5;}} }; und jeweils auf den MCs: on(rollOver){_global.current=3; } on(rollOut){_global.current=100;} |
| | |
| | #5 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Da ich kein Freund, von ewig laufenden onEnterFrames bin, hier eine meiner Varainten. PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 61
|
soweit, so gut. es klappt alles wie ichs wollte...nur hätte ich es jetzt gern, dass man sich den code für jedes einzelne MC spart. Also, dass man nicht auf jeden MC onRollOver=function(){ current=1;} onRollOut=function(){ current=100;} legen muss. Das Script sollte also erkennen, auf welchem MC man sich gerade befindet, dessen "Nummer" (also das i) auslesen und current=i setzen. Wie mache ich das? mein ansatz: for (var i = 1; i<=20; i++) { if(i!=current){ this["b"+i].onRollOver=function(){ current=i;} this["b"+i].onRollOut=function(){ current=100;} ... nur geht das wahrscheinlich dehalb nicht, weil die variable i ja erst nach der bedingung i!=current definiert wird. |
| | |
| | #7 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Der Ansatz mit "current" ist vorsichtig gesagt "Quark, ließt Du eigentlich was man Dir hier reinpostet? Da wäre das enthalten was Du suchst! PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 61
|
Ja ich lese was hier gepostet wird. Nur habe ich deinen Ansatz (da ich noch nicht gerade gut im AS bin) nicht als Lösung erkannt. Jetzt habe ich noch nicht verstanden was dieses: if(this["btn"+i] != btn)...bedeutet. Wenn du nur "btn" schreibst meinst du doch damit den direkten Instanznamen oder? Da müsste ich diese Funktion ja für jeden Button einzeln machen? Oder verstehe ich das falsch? Müsste das nicht eigentlich paradoxer Weise so heisen: if(this["btn"+i] != ["btn"+i]) ?....obwohl sieht auch irgendwie sinnlos aus. Hoffe du verlierst nicht die Geduld mit mir ^ |
| | |
| | #9 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
OK. Dann versuchen wir einen Ansatz, der vielleicht besser für Dich geeignet ist! 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) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 61
|
Danke dir, jetzt funktionierts, obwohl ich noch nicht die bedeutung von deiner ersten zeile verstehe. Werden da alle MCs irgendwie mit "this" definiert? Und da hätte ich auch noch eine Frage, weil ich nämlich möchte, dass die MCs in zufälliger reihenfolge und zeitl. Abfolge abgespielt werden. ich hatte das wahrscheinlich schon wieder zu kompliziert oder chaotisch gedacht, deshalb mach ich immer alles mit einer Unmenge an Variablen ^^aber ich weis es leider noch nicht besser. Wie ich eine zufällige Zahl ermitteln lassen kann weis ich. Ich dachte erst, dass die funktion welche die MCs abspielt nur läuft wenn eine bedingung erfüllt ist, welche am Ende des jeweils abgespielten MCs wieder erfüllt wird. Ich wollte das erst so hier mache: ... if(zeitum || stopRandom){ z= random(anzahl)+1; zeit = Math.random()*2000+3000; stopRandom=false; randoomed=true; } if(randoomed==true){ delay = setInterval(pause, zeit); function pause() { play(); this["b"+z].gotoAndPlay(20); zeitum=false; trace("ausgeführt"); clearInterval(delay); }} Und wenn der MC abgespielt wurde, setzt er stopRandom und zeitum auf true. aber so klappts nich |
| | |
| | #11 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Die erste Zeile ist nur dafür da, das ich mich nicht innerhalb der Buttons, mit zb. _parent oder _parent._parent nach oben durch hangeln muss, und kein "_root" verwenden muss. Das ist eine Referenz auf die Timeline, in der die Buttons liegen.
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 61
|
Achso ok... wie könnte ich es denn jetzt noch angehen, wenn ich möchte, dass bei einem bestimmten abstand von MC zur Maus der MC sich langsam richtung Maus bewegt,...aber nur in einem gewissen Rahmen. Aber scheinbar kann ich die position von den MCs nicht mit this["b"+i]._x nicht ansprechen. also for(i=1;i<4;i++){ if((_root._xmouse)-(["b"+i]._x)<=20){ ["b"+i]._x=["b"+i]._x+20};}} müssten da nicht alle MCs um 20px in die X-Richtung springen sobald man mit der maus "zu nah" heran kommt? Aber es funktioniert so nich. |
| | |
| | #13 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
this["b"+i] oder _root["b"+i]n oder wie ich schon erklärt habe timeline["b"+i] ! Was willst Du mit Buttons die sich von der Mouse entfernen?
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 61
|
Nein die buttons sollen sich nicht entfernen, sondern ab einer gewissen Distanz langsam an den Mauszeiger heranziehen. ich hab schon versucht erstmal die distanz zu ermitteln. aber das allein funktioniert schon nicht. (Das beispiel was ich im vorigen Post geschrieben habe, war nur erstmal um zu schauen ob sich die MCs überhaupt angesprochen fühlen wenn ich mit der maus herankomme. aber das geht so leider nich
|
| | |
| | #15 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Nur auf der _x-Achse oder auch auf der _y-Achse? Hier noch ein Link, vielleicht trifft der ja. Wenn nicht im Netz unter magnetic-button etc,. gucken. http://www.actionscript.org/resource...enu/Page1.html
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" Geändert von RustyCake (18-02-2011 um 12:35 Uhr) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| as2, movieclip ansprechen, variable |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash CS5] Alle MovieClips einer Klasse ansprechen? | Jenkin879 | Flash Einsteiger | 1 | 27-11-2010 12:00 |
| [Flash CS3] Alle MovieClips einer Klasse ansprechen? | Reign_of_Light | Flash Einsteiger | 6 | 27-05-2010 08:35 |
| Verschachtelte MovieClips mit Variablen ansprechen | Andrews | ActionScript 3 | 4 | 05-09-2009 19:23 |
| Movieclips nach loadMovie ansprechen | mhzip | Flash 8 | 9 | 19-07-2006 01:15 |
| MovieClips in einer for-Schleife ansprechen | DaHofer | ActionScript 1 | 4 | 20-02-2004 20:06 |