Mousefollow mit Ausrichtung im Menü [Flash 10]
| 14.08.2009, 09:09 | | Beiträge: 20 Registriert: Dec 2006
| Mousefollow mit Ausrichtung im Menü Hi zusammen,
Hoffe ihr könnt mir Helfen. und zwar folgendes Problem:
Ich habe eine Menüleiste mit 4-5 Schaltflächen. Oberhalb soll nun ein Pfeil/Kreis oder sonst was sein, der der Maus folgt und sich über den jeweiligen Button "mittig" ausrichtet. Allerdings muss ebenfalls auch ein Bereich gekennzeichent werden damit sichergestellt ist, das der pfeil sich auch nur mitbewegt wenn man über einen der Schaltflächen fährt.
Beispielskizze:
o
[Button 1] [Button 2] [Button 3]
Erläuterung:
Der Benutzer befindet sich grade auf Button 2 und der Pfeil/Kreis/oder was auch immer, ist nun nach rechts geslidet und hat sich auf Button 2 "mittig" ausgerichtet. So soll er halt immer hinterhersliden und sich auf den Buttons dann ausrichten wo man stehen bleibt.
hoffe das war Verständlich erklärt und freue mich auf Antwort.
lg, Cape | Geändert von capecok am 14.08.09 um 09:10 Uhr
| |
|
| 14.08.2009, 10:03 | Re1 | Beiträge: 46 Registriert: Apr 2008
| Hi Capecok
hab dir da mal ebend schnell was gemacht ist im Anhang die Zip mit der FLA & Swf.
Schau dir einfach mal das Prinzip an wirst es denke ich mal verstehen.
Ich habe für die Bewegung die Tweener Klasse verwendet. Such einfach mal bei Google "caurina tweener as3" und du kannst sie runter laden.
Vergiss nur nicht den Klassenordner wo die Klasse drinn ist in den Flash Voreinstellungen einzufügen.
Grüße
2K
Angehängte Dateien:
| |
| 14.08.2009, 10:19 | Re2 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| Super :D
Ich danke dir viel viel mals. Funktioniert einwandfrei und ist genau das was ich gesucht habe.
Nochmals lieben Dank für deine Mühe !
Gruß, Cape | |
| | | nicht sichtbar bei eingeloggten Mitgliedern |
|
| 14.08.2009, 10:36 | Re3 | Beiträge: 46 Registriert: Apr 2008
| kein Ding hoffe hast das Prinzip verstanden ;-)
hau rein
2K | |
| 14.08.2009, 10:40 | Re4 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| jupp das habe. ausgerichtet habe ich auch alles via X Y Positionen... den rest fummel ich mir zusammen :D
Tolle Sache..
Danke und auf bald | |
| 14.08.2009, 10:57 | Re5 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| Also eine Frage muss ich noch hinterher schieben :D
Gibts eine Möglichkeit die Buttons:
1. In der Größe zu bestimmen ? Weil machne menüpunkte sind halt kleiner du da ist es Sinnlos alle Buttons auf der gleichen Größe zu haben.
2. Jeden Button einzeln zu sagen "WO" er beim klicken hinspringen soll im Film ?
... hoffe das es jetzt nicht zuviel zusätzlicher Aufwand ist, aber dann habe ich alles gelöst. Wäre sehr nett..
gruß, Cape | |
| | | nicht sichtbar bei eingeloggten Mitgliedern | 
|
| 19.08.2009, 11:32 | Re6 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| Hi zusammen, leider wurde meine Frage mir nicht beantwortet und hoffe das durch das mitgelieferte Script womit mir 2K schon sehr geholfen hat ein bisschen licht ins dunkle kommt.
Habe Also in der Biblio eine Mc der sich "button" und einer der sich "zeiger nennt".
Das Script GANZ unten sorgte ja unter anderem dafür das 6 Buttons aus meinen MC erstellt werden mit Größen & Positionsangaben etc...
Funktioniert alles auch super.. der Pfeil läuft hinterher, die 6 buttons sind da wo sie sein sollen usw, Problem ist nur:
Ich weiss nicht wich ich jetzt jeden der 6 Buttons DIREKT ansprechen kann damit ich ihnen mitteile wo sie beim klicken hinspringen sollen. Diese 6 Buttons bilden halt meine Navileiste und irgendwie muss ich sie ja verlinken so zusagen.
Mir würde helfen wenn ich jeden button ein namen zuweisen kann damit ich ihn mit diesem Script anspreche udn er weiss wo er hin muss:
PHP:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
<? stop();
var sprung:uint;
meinBTN1.addEventListener(MouseEvent.CLICK, funktion1);
meinBTN2.addEventListener(MouseEvent.CLICK, funktion2);
meinBTN3.addEventListener(MouseEvent.CLICK, funktion3);
meinBTN4.addEventListener(MouseEvent.CLICK, funktion4);
meinBTN5.addEventListener(MouseEvent.CLICK, funktion5);
meinBTN6.addEventListener(MouseEvent.CLICK, funktion6);
function funktion1(evt:MouseEvent):void {
gotoAndPlay(5);
sprung = 30;
}
function funktion2(evt:MouseEvent):void {
gotoAndPlay(5);
sprung = 31;
}
function funktion3(evt:MouseEvent):void {
gotoAndPlay(40);
}
etc etc .. ?>
|
Das hier ist das Script wir mir dann die Buttons, Animation usw. erzeugt:
PHP:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
<?
import caurina.transitions.Tweener;
var pfeil:zeiger = new zeiger();
pfeil.x = 75+(0*91);
pfeil.y = 322;
addChild(pfeil);
for (var i:uint = 0; i<=6-1; i++){
var buttons:knopf = new knopf();
buttons.name = "button"+String(i);
buttons.buttonMode = true;
buttons.useHandCursor = true;
buttons.x = 35 +i*91;
buttons.y = 321;
addChild(buttons);
buttons.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
}
function rollOverHandler(e:MouseEvent):void
{
Tweener.addTween(pfeil,{x:e.target.x + (e.target.width/2), time:2});
trace(e.target.name);
} ?>
|
| Geändert von capecok am 19.08.09 um 11:35 Uhr
| |
|
| 19.08.2009, 11:48 | Re7 | Beiträge: 46 Registriert: Apr 2008
| Hi oh das hab ich dann wohl übersehen sorry :-)
Da ich jetzt auch noch nicht der Superprogger mit AS3 bin würde ich es vielleicht mal so probieren. Ist halt jetzt nur mein Denkansatz und NICHT getestet.
ich denke das könnte man so lösen und sollte (ich hoffe es) klappen.
Es gibt sicherlich auch andere Ansätze die besser sind als meiner aber wie gesagt ich lerne selber noch und wäre sehr dankbar für einen besseren Ansatz. Oder wird das intern immer so verlinkt??
naja genug gequatscht hier mein schnell getippter Script
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import caurina.transitions.Tweener;
var pfeil:zeiger = new zeiger();
pfeil.x = 75+(0*91);
pfeil.y = 322;
addChild(pfeil);
for (var i:uint = 0; i<=6-1; i++){
var buttons:knopf = new knopf();
buttons.name = "button"+String(i); //Hier bekommen die Buttons einen Namen.
buttons.buttonMode = true;
buttons.useHandCursor = true;
buttons.x = 35 +i*91;
buttons.y = 321;
addChild(buttons);
buttons.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
buttons.addEventListener(MouseEvent.CLICK, clickHandler);
}
function rollOverHandler(e:MouseEvent):void
{
Tweener.addTween(pfeil,{x:e.target.x + (e.target.width/2), time:2});
trace(e.target.name);
}
function clickHandler(e:MouseEvent):void
{
if (e.target.name == "button0")
{
//Mach das was Button1 machen soll
} else if (e.target.name == "button1")
{
//Mach das was Button2 machen soll
} else if (e.target.name == "button2")
{
//Mach das was Button3 machen soll
} else if (e.target.name == "button3")
{
//Mach das was Button4 machen soll
} else if (e.target.name == "button4")
{
//Mach das was Button5 machen soll
}
}
|
EDIT:Die letzte else if Anweisung für button6 musst du noch einfügen...hab die jetzt vergessen. Aber das Prinzip funktioniert.
viel Spaß damit wenn es klappt ;-)
2K | Geändert von 2kOne am 19.08.09 um 11:55 Uhr
| |
|
| 19.08.2009, 12:51 | Re8 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| Danke dir 2K :D
Aber da ich noch ein größerer Anfänger bin wie du entschuldige meien Frage aber da wo ich die Button Benennen soll, da fehlt mir ein beispiel. sonst weiss ich rein garnicht wie ich die namen setzen soll. Den Rest habe ich 1a verstanden.
Da haperts:
ActionScript:| 1 | buttons.name = "button"+String(i); //Hier bekommen die Buttons einen Namen.
|
| Geändert von capecok am 19.08.09 um 12:57 Uhr
| |
|
| 19.08.2009, 13:11 | Re9 | Beiträge: 46 Registriert: Apr 2008
| naja also gucken wir uns diese zeile mal genauer an:
ActionScript:| 1 | buttons.name = "button"+String(i); //Hier bekommen die Buttons einen Namen.
|
mit buttons sprichst du ja jeden generierten Button der FOR-Schleife an. Also Sage ich ihm jetzt er soll jedem Button einen ".name" geben und sage das jeder Button "= "button"+String(i)" heißen soll also quasi ->> button0, button1 usw.
das String(i) steht nur da da ich einem String "button" <- in dem Fall keine "var i:UINT" KEINE UINT bzw Number zuweisen kann sondern diese Number in einem String übergeben und addieren(hinzufügen) muss.
das wars schon hoffe hast verstanden was ich meine
grüße
2K | |
| 19.08.2009, 13:23 | Re10 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| Also wenn ich das rcihtig verstanden habe bleibt da einfach alles so wie es war/ist und das die buttons dann button0, button1 etc heissen wird also aus der logik herraus selbst festgelegt ?
Das heisst z.b der button für Startseite sozusagen mein erster heisste dann automatisch "button0" ?
Habe ich das richtig verstanden oder habe ich mich nun total verrannt und brauch noch ne kanne kaffee xD ? | Geändert von capecok am 19.08.09 um 13:27 Uhr
| |
|
| 19.08.2009, 13:31 | Re11 | Beiträge: 46 Registriert: Apr 2008
| Also im Prinzip hast du es "fast" verstanden ^^
Hol dir also noch eine Kanne Kaffe und chill ;-)
Also das dein "Home"-Button dann den Namen "button0" hat ist schon richtig. Aber diesen Namen kannst du soweit ich es kappiert habe nur über den Eventlistener abfangen und nicht z.B. über "button0.x = 200" ansprechen. Dieser name existiert NUR in deiner Listener Funktion und diesen kannst du in dem Fall mit "e.target.name" anfangen und verarbeiten. Das haben wir in dem beispiel mit den ganzen IF und ELSE IF Anweisungen gelöst.
Hoffe nun hast du es verstanden ;-)
grüße
2K | |
| 19.08.2009, 13:40 | Re12 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| Also ich näherer mich den ziel. Wenn du mir jetzt noch einfach zur 3-fachen verständniss ein Beispiel reinkritzelst wo du dem "button0" z.b sagst: gotoAndPlay(30) ... sehe ich ganz genau wo ich das eintragen muss... und als dank mache ich dir und mir paar girls klar ! xD | Geändert von capecok am 19.08.09 um 13:41 Uhr
| |
|
| 19.08.2009, 13:47 | Re13 | Beiträge: 46 Registriert: Apr 2008
| Ok also versuch es mal mit diesem Script
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import caurina.transitions.Tweener;
var sprung:uint;
var pfeil:zeiger = new zeiger();
pfeil.x = 75+(0*91);
pfeil.y = 322;
addChild(pfeil);
for (var i:uint = 0; i<=6-1; i++){
var buttons:knopf = new knopf();
buttons.name = "button"+String(i); //Hier bekommen die Buttons einen Namen.
buttons.buttonMode = true;
buttons.useHandCursor = true;
buttons.x = 35 +i*91;
buttons.y = 321;
addChild(buttons);
buttons.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
buttons.addEventListener(MouseEvent.CLICK, clickHandler);
}
function rollOverHandler(e:MouseEvent):void
{
Tweener.addTween(pfeil,{x:e.target.x + (e.target.width/2), time:2});
trace(e.target.name);
}
function clickHandler(e:MouseEvent):void
{
if (e.target.name == "button0")
{
gotoAndPlay(5);
sprung = 35;
} else if (e.target.name == "button1")
{
gotoAndPlay(5);
sprung = 36;
} else if (e.target.name == "button2")
{
gotoAndPlay(5);
sprung = 37;
} else if (e.target.name == "button3")
{
gotoAndPlay(5);
sprung = 38;
} else if (e.target.name == "button4")
{
gotoAndPlay(5);
sprung = 39;
} else if (e.target.name == "button5")
{
gotoAndPlay(5);
sprung = 40;
}
}
|
Jetzt musst du nur noch wie schon letztens in dem "Frames überspringen Thema" besprochen auf deinem Frame "20" war es glaub ich in dem Beispiel sagen
dann sollte es das gewesen sein.
Und dein Angebot mit den Mädels muss ich dankend ablehnen. Habe mein Mädel schon längst gefunden ;-)
grüße
2K | |
| 19.08.2009, 13:58 | Re14 | Beiträge: 20 Registriert: Dec 2006
Themenautor/in
| Danke dir 2k ... Das hat mir super toll geholfen und funktioniert einwandfrei xD ! endlich komme ich weiter vorran. Dieses AS 3 macht mich noch fix und fertig...
PS: Hat deine Mädel noch ne nette Freundin xD ?
Nochmals lieben dank und ich sag mal... bis morgen^^
Gruß, Cape | |
| | Themen Ähnliche Beiträge zum Thema | 20.09.2009 - pixelchicken 17.12.2009 - shrekisback 21.07.2011 - mato 23.08.2011 - mato |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|