PDA

Volledige versie bekijken : navigatie vraagje


maccable
%Europe/Berlin %385 %2006, 10:15
Ik wil met onderstaande navigatie het volgende doen.
Als je op bijvoorbeeld button drie klikt moet de rode lijn eerst vergroten naar het einde van deze button en daarna moet de andere kant van de lijn volgen tot de grootte van de button en omgekeerd uiteraard. Iemand enig idee.

vincoid
%Europe/Berlin %442 %2006, 11:37
Ik weet zelf niet hoe het moet maar je waarschijnlijk met AS een motiontween maken die de breedte van de lijn oprekt tot een bepaalde breedte (aantal pixels) en dan natuurlijk ook met de likerkant hetzelfde dat hij in een bepaald gebied staat.

Waarschijnlijk kan je hier wel aardig wat over vinden in het Actionscript sticky van TheFlashWizard.

Je kan dit trouwens ook gewoon doen door alle benodigde animaties in de MC van de rode lijn te zetten en die apart af te laten spelen als er op een bepaalde button wordt gedrukt.

Jimbooo
%Europe/Berlin %456 %2006, 11:56
line_mc._x = 0;

btn_3.onRelease = function()
{
var intervalID = setInterval(transf, 2);
}

function transf()
{
if(line_mc._width!=(btn_3._width-btn_3._x))
{
line_mc._width+=1;
line_mc._x=0;
}
else
{
clearInterval(intervalID);
var intervalID2 = setInterval(transf2, 2);
}
}

function transf2()
{
if(line_mc._width!=btn_3._width && line_mc._x!=btn_3._x)
{
line_mc._width-=1;
line_mc._x=(btn_3._x+btn_3._width)-line_mc._width;
}
else
{
clearInterval(intervalID2);
}
}Dit zal wel niet goed werken, maar ik hoop dat ik je er een beetje mee opweg kan helpen

Grtz!

Jim

maccable
%Europe/Berlin %479 %2006, 12:30
Werkt nog niet helemaal goed. zie hier:

Jimbooo
%Europe/Berlin %487 %2006, 12:42
line_mc._x = 0;

btn_3.onRelease = function()
{
var intervalID = setInterval(transf, 2);
}

function transf()
{
if(line_mc._width<(btn_3._width+btn_3._x))
{
line_mc._width+=1;
line_mc._x=0;
}
else
{
clearInterval(intervalID);
var intervalID2 = setInterval(transf2, 2);
}
}

function transf2()
{
if(line_mc._width>btn_3._width && line_mc._x!=btn_3._x)
{
line_mc._width-=1;
line_mc._x=(btn_3._x+btn_3._width)-line_mc._width;
}
else
{
clearInterval(intervalID2);
}
}Zo werktie wel! Voor een vloeiende beweging kun je de fps nog verhogen.

Als je dit nu voor alle buttons wilt doen, dan zul je de instance naam via parameters kunnen doorgeven, dan hoef je al deze code niet voor elke button te schrijven.

Grtz!

Jim

maccable
%Europe/Berlin %518 %2006, 13:27
Hij werkt niet helemaal goed, als je nu de andere buttons erin zet, dan moet ie van de ene button naar de andere gaan. Maar wel bedankt, so far so good!

Jimbooo
%Europe/Berlin %530 %2006, 13:43
ja dat klopt, maar dat zul je zelf in moeten bouwen, als ik dat allemaal voor je moet gaan programmeren dan wordt het een beetje te gek :P

dit is in ieder geval het principe!

Grtz!

Jim