J'essaie de faire bouger un objet (ici un petit cercle) autour d'un cercle (contour et fond transparent). Mais je n'y arrive pas du tout. J'ai trouvé des tutoriaux à ce sujet, mais mes connaissances sont trop faibles pour les déchiffrer.
Par exemple ici : http://flashascript....actionscript-3/
// UI container
var dial:Sprite;
// Draggable object. Can be anything. I chose arrow.
var arrow:Sprite;
// circle radius - play with changing this value
var radius:Number = 150;
// calculated angle
var angle:Number = 0;
// convert to radians - do it once to save on processing power
var angleConvert:Number = 180 / Math.PI;
// initiate application
init();
function init():void
{
makeDial();
makeArrow();
}
/**
* MouseEvent.MOUSE_MOVE handler.
* @param e
*/
function onMove(e:MouseEvent):void
{
// calculate angle between mouse position and the center of dial
angle = Math.atan2(mouseY - dial.y, mouseX - dial.x);
// reposition arrow according to angle
arrow.x = radius * Math.cos(angle);
arrow.y = radius * Math.sin(angle);
// rotate arrow so that it always point outward
arrow.rotation = angleConvert * angle + 90;
}
/**
* MouseEvent.MOUSE_DOWN handler
* @param e
*/
function onArrowDown(e:MouseEvent):void
{
/**
* MouseEvents listeners are added to STAGE - not arrow.
* This way event if Mouse is not over arrow - interaction is preserved.
*/
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
stage.addEventListener(MouseEvent.MOUSE_UP, onStageUp);
}
/**
* MouseEvent.MOUSE_UP handler
* @param e
*/
function onStageUp(e:MouseEvent):void
{
// by removing listeners we stop interaction.
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
stage.removeEventListener(MouseEvent.MOUSE_UP, onStageUp);
}
/**
* Instantiates dial container and draws circle inside it.
*/
function makeDial():void {
dial = new Sprite();
var g:Graphics = dial.graphics;
g.lineStyle(1, 0x004000);
g.drawCircle(0, 0, radius);
dial.x = dial.y = radius + 50;
addChild(dial);
}
/**
* Instantiates arrow, draws triangle and adds arrow to dial display list.
*/
function makeArrow():void {
arrow = new Sprite();
// draw triangle
var g:Graphics = arrow.graphics;
g.beginFill(0x000080);
g.moveTo(0, -15);
g.lineTo(7, 6);
g.lineTo( -7, 6);
g.endFill();
// position arrow on the top of circle
arrow.y = -radius;
dial.addChild(arrow);
// make arrow interactive
arrow.buttonMode = arrow.useHandCursor = true;
arrow.addEventListener(MouseEvent.MOUSE_DOWN, onArrowDown);
}
Ici, je voudrais en fait que le petit triangle soit mon petit cercle (ici un clip que j'ai crée appelé "curseur") et qu'il bouge autour de mon cercle appelé "cercle" qui soit au milieu de ma page.
Et quand je bouge mon petit cercle "curseur", on peut voir d'autres petits cercles "point" autour de mon cercle "cercle" principal, et à chaque passage sur ces "points" l'utilisateur puisse voir du texte qui va s'afficher.
Si quelqu'un peut m'aider et m'expliquer comment faire ! Merci encore ! :/