Forums Développement Multimédia

Aller au contenu

animation problème calque

PAO Flash

3 réponses à ce sujet

#1 elneo47

    Ceinture Jaune

  • Members
  • PipPip
  • 17 messages

Posté 31 January 2013 - 11:25 AM

Bonjour,
En fouillant sur le forum je suis tombé sur une animation tween permettant de reproduire un fil.
J'ai donc adapté le code à mon application mais je tombe sur un problème de calque.
En effet le fil passe derrière les clip posés sur la scène alors que je voudrais qu'il soit au 1er plan ou par exemple passe devant le 1er clip vert/bleu et derrière le clip tout vert.
voilà le code :

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var sprite:MovieClip = new MovieClip;
addChild(sprite);
sprite.graphics.drawCircle(3,3,5);
sprite.graphics.endFill();
//graphics.lineStyle(1);
var tweenX:Tween=new Tween(sprite, "x", Elastic.easeOut,0,r1.x-(r1.x-b2.x)*.5,.05,true);
tweenX.addEventListener(TweenEvent.MOTION_CHANGE, tweenChange);
var tweenY:Tween=new Tween(sprite, "y", Bounce.easeOut,0,r1.y+(r1.y-b2.y)*.5,.0005,true);
tweenY.addEventListener(TweenEvent.MOTION_CHANGE, tweenChange);

r1.addEventListener(MouseEvent.MOUSE_DOWN, startdrag);
r1.addEventListener(MouseEvent.MOUSE_UP, stopdrag);
function startdrag(e:MouseEvent)
{
                e.currentTarget.startDrag();
                stage.addEventListener(MouseEvent.MOUSE_MOVE, moveSprite);
         
}
function stopdrag(e:MouseEvent)
{
                e.currentTarget.stopDrag();
                stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveSprite);
}
function moveSprite(e:MouseEvent)
{
                tweenX.continueTo(r1.x-(r1.x-b2.x)*.5, 5);
                tweenY.continueTo(r1.y-(r1.y-b2.y)*1.4, .01);
}
function tweenChange(e:TweenEvent)
{
                graphics.clear();
                graphics.lineStyle(9);
                graphics.moveTo(r1.x,r1.y);
                graphics.curveTo(sprite.x, sprite.y,b2.x, b2.y );
}

var test:Boolean = false;

r1.addEventListener(MouseEvent.MOUSE_DOWN,attraprise);
r1.addEventListener(MouseEvent.MOUSE_UP,lacheprise);

function attraprise(evt:MouseEvent):void
{

evt.currentTarget.startDrag(false);
}
function lacheprise(evt:MouseEvent):void
{
evt.currentTarget.stopDrag();
}

 

De plus j'ai une autre question, comment changer la couleur de ce fil ou remplir l'intérieur d'une couleur et le contour d'une autre couleur.

Je vous remercie par avance pour votre aide.

Fichier(s) joint(s)



#2 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 31 January 2013 - 17:34 PM

salut :)

le plus simple serait un clip nommé mcVide - par exemple - qui serait… vide ;) juste destiné à recevoir le dessin. Tu le poses en 0/0 de la scène au niveau de profondeur qui te convient, tu peux utiliser les calques du coup.

et tu dessines non pas sur la scène :
           graphics.clear();
                                graphics.lineStyle(9);
                                graphics.moveTo(r1.x,r1.y);
                                graphics.curveTo(sprite.x, sprite.y,b2.x, b2.y );

mais sur le clip en question :

mcVide.graphics.lineStyle(9);

etc.


pour la couleur, je te propose de regarder un peu la doc (c'est comme ça qu'on apprend) ;)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#3 elneo47

    Ceinture Jaune

  • Members
  • PipPip
  • 17 messages

Posté 31 January 2013 - 19:53 PM

Merci, je viens de tester l'utilisation d'un calque vide ça fonctionne super bien!!!!
J'étudie la doc que vous m'avez indiqué.
Je reviens si j'ai un soucis.

#4 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 02 February 2013 - 13:11 PM

Bonjour,

Voir le messageelneo47, le 31 January 2013 - 11:25 AM, dit :

De plus j'ai une autre question, comment changer la couleur de ce fil ou remplir l'intérieur d'une couleur et le contour d'une autre couleur.

Pour ça le plus simple sera surement de dessiner le fil 2 fois. D'abord avec un lineStyle épais de la couleur du contour, puis par-dessus avec une lineStyle plus fin et la couleur de l'intérieur.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)