Denk jij nog een leuk of nuttig flash script te hebben, post het dan in de scriptbase !
compas menu
Toegevoegd door: vinTage op 27-12-2008
Beschrijving
Voorbeeld Een menu dat eruitziet/zich gedraagt als een compas. De naald volgt de muis als men op de swf zit, zodra de muis de swf verlaat, wijst de naald weer naar de active link.
Code
actionscript code//positie van active button (graden) (homeKnop atm)
//in het script staat in een trace om evt startposities te "berekenen", default naar boven
var finalGraden:Number = (root.loaderInfo.parameters.finalGraden == undefined)? -90 : root.loaderInfo.parameters.finalGraden;
//de gebruikte buttons actions meegeven
homeKnop.addEventListener(MouseEvent.MOUSE_OVER, draai);
homeKnop.addEventListener(MouseEvent.CLICK, draai);
nieuwsKnop.addEventListener(MouseEvent.MOUSE_OVER, draai);
nieuwsKnop.addEventListener(MouseEvent.CLICK, draai);
contactKnop.addEventListener(MouseEvent.MOUSE_OVER, draai);
contactKnop.addEventListener(MouseEvent.CLICK, draai);
//etc, buttons toevoegen naar keuze
///////////////////het script///////////////////
import fl.transitions.Tween;
import fl.transitions.easing.*;
//vars declareren
var graden:Number;
var hoek:Number;
var dx:Number;
var dy:Number;
var roteren:Tween;
naald.addEventListener(MouseEvent.MOUSE_MOVE, draai);
stage.addEventListener(Event.MOUSE_LEAVE, weg);
//muis niet op de swf, dus naald naar laatst geklikte/actieve button laten bewegen
function weg(event:Event)
{
roteren = new Tween(naald, "rotation", Elastic.easeOut, naald.rotation, finalGraden, 1, true);
}
//graden berekenen
function draai(event:MouseEvent):void
{
//graden bij movement op het compas zelf
if (event.type == "mouseMove")
{
dx = mouseX - naald.x;
dy = mouseY - naald.y;
hoek = Math.atan2(dy,dx);
graden = 360*(hoek/(2*Math.PI));
}
//graden bij hover op buttons
if (event.type == "mouseOver")
{
dx = getChildByName(event.target.name).x - naald.x;
dy = getChildByName(event.target.name).y - naald.y;
hoek = Math.atan2(dy,dx);
graden = 360*(hoek/(2*Math.PI));
}
//graden van "active" button
if (event.type == "click")
{
dx = getChildByName(event.target.name).x - naald.x;
dy = getChildByName(event.target.name).y - naald.y;
hoek = Math.atan2(dy,dx);
finalGraden = 360*(hoek/(2*Math.PI));
trace(finalGraden);//om positie te bepalen, die je evt kan gebruiken als startpositie in verschillende html files
/*
if(event.target.name == "homeKnop")
{
navigateToURL(new URLRequest("http://www.vintagesworld.be"), "self");
}
etc
*/
}
roteren = new Tween(naald, "rotation", Elastic.easeOut, naald.rotation, graden, 1, true);
}
//start///swf word net getoont, dus naald pointen
roteren = new Tween(naald, "rotation", Elastic.easeOut, naald.rotation, finalGraden, 1, true);
Gebruik
actionscript code/*
Om de swf te gebruiken in verschillende paginas, moet je een parameter meegeven, anders wijst de naald standaard naar "home".
tutorial om variables door te geven => http://www.vintagesworld.be/tutorials/overig/119/
De parameter die meegegeven moet worden vind je terug onder "finalGraden".
De juiste graden kom je te weten als je op een button klikt (trace) in previewmode (of met flashtracerPlugin).
Buttons kan je in principe gewoon aanmaken, het script verzorgt verder de rest, wel zou je een beetje rekening moeten houden met het registratie punt per button.
In mijn voorbeeld, is het registratiepunt van de home in het midden.
Van nieuws rechtsboven en van contact linksboven.
Locaties waar heen gesurft moet worden in verschillende htmlfiles, kan je aanmaken onderin het script.
*/
Je moet aangemeld zijn om commentaar te kunnen lezen of geven.