Accueil > Forum > > > > api dessin as3
api dessin as3
mardi 13 avril 2010 à 18:00:27 |
api dessin as3

Ariranha
|
Bonjour à tous.
je suis actuellement sur un chronomètre en forme de cercle pour un jeu.
Je n'ai pas de problèmes en ce qui concerne le dessin du cercle en fonction d'un timer.
Or maintenant faut que je prévois que le temps peut être diminué (par collision dans le jeu). Je pense qu'un exemple sera plus simple pour exposer mon problème. Il suffit de cliquer sur le btn pour voir ce qui cloche.
Lien vers l'exemple.
Comment pourrais-je faire pour remplir les vides qui se forment ? Si quelqu'un avait une piste je suis plus que preneur.
Merci
Le code de l'exemple ci-dessous :
Code ActionScript :
/*___________________RENDU GRAPHIQUE TIMER_____________________*/
var _letimer:Timer = new Timer(10,15000);
var _progress:Shape = new Shape();
_progress.x = 100;
_progress.y = 100;
var _temps:int;
var _letemps:int;
var _faceSize:Number;
var txt:txtTimer = new txtTimer();
txt.x = _progress.x - 40;
txt.y = _progress.y - 53;
initClock();
function initClock(faceSize:Number = 60):void {
_faceSize = faceSize;
AfficheClock(null);
}
function AfficheClock(evt:TimerEvent):void {
addChild(txt);
txt.filters = [ombre];
addChild(_progress);
_progress.filters = [ombre];
_progress.graphics.clear();
_progress.graphics.beginFill(0xb7dd3c);
_progress.graphics.drawCircle(0,0,(_faceSize/2));
_progress.graphics.lineStyle(1.0,0xffffff,1);
_progress.graphics.drawCircle(0,0,(_faceSize/2)+1);
_progress.graphics.lineStyle(3,0xffffff,1);
_progress.graphics.drawCircle(0,0,(_faceSize/2));
_progress.graphics.endFill();
startClock(1);
}
function startClock(temps:uint):void {
_progress.graphics.moveTo(0,0);
_progress.graphics.lineStyle(2.0,0x4a7d04,1);
_progress.graphics.lineTo(0,-((_faceSize-6)/2));
_progress.graphics.endFill();
_temps = 18000;
_letimer.start();
_letimer.addEventListener(TimerEvent.TIMER, onTick);
}
var angle:Number;
var newX:Number;
var newY:Number;
function onTick(evt:TimerEvent):void {
_temps = _temps - 10;
_progress.graphics.moveTo(0,0);
angle = _temps / 18000 * Math.PI * 2;
newX = Math.sin(angle) * -((_faceSize-6)/2);
newY = Math.cos(angle) * -((_faceSize-6)/2);
_progress.graphics.lineTo(newX,newY);
if (_temps <= 0) {
_letimer.addEventListener(TimerEvent.TIMER, finTimer);
}
}
function finTimer(evt:TimerEvent):void {
_letimer.removeEventListener(TimerEvent.TIMER, finTimer);
_letimer.removeEventListener(TimerEvent.TIMER, onTick);
}
/*__________________BTN___________________*/
var monClip:MovieClip = new MovieClip();
addChild(monClip);
var bouton:Shape = new Shape();
monClip.addChild(bouton);
bouton.graphics.clear();
bouton.graphics.beginFill(0x124457);
bouton.graphics.lineStyle(2,0xb5b000);
bouton.graphics.drawRoundRect(150,150,100,60,5);
bouton.graphics.endFill();
function clique(evt:MouseEvent):void {
_temps = _temps - 1000;
if (_temps <= 0) {
_letimer.addEventListener(TimerEvent.TIMER, finTimer);
_letimer.removeEventListener(TimerEvent.TIMER, onTick);
}
}
function monClip_over(evt:MouseEvent):void {
bouton.graphics.beginFill(0xffffff);
bouton.graphics.drawRoundRect(150,150,100,60,5);
bouton.graphics.endFill();
}
function monClip_out(evt:MouseEvent):void {
bouton.graphics.beginFill(0x124457);
bouton.graphics.drawRoundRect(150,150,100,60,5);
bouton.graphics.endFill();
}
monClip.buttonMode = true;
monClip.addEventListener(MouseEvent.CLICK, clique);
monClip.addEventListener(MouseEvent.MOUSE_OVER, monClip_over);
monClip.addEventListener(MouseEvent.MOUSE_OUT, monClip_out);
|
|
mardi 13 avril 2010 à 18:24:14 |
Re : api dessin as3
|
mardi 13 avril 2010 à 19:59:32 |
Re : api dessin as3

Ariranha
|
Bonsoir,
Dis moi si j'ai tord mais si je dessine des portions de cercle comme tu dis on ne verra pas le cercle se former petit a petit mais par portion justement. D'où l'intérêt de le faire avec des traits ?
Ariranha.
|
|
mardi 13 avril 2010 à 20:46:44 |
Re : api dessin as3
|
mardi 13 avril 2010 à 21:16:37 |
Re : api dessin as3

Ariranha
|
En effet vu sous cet angle  .
Des demain je teste.
Merci et bonne soirée.
|
|
mercredi 14 avril 2010 à 10:57:32 |
Re : api dessin as3

Ariranha
|
Bonjour,
Je me suis donc dirigé vers une autre méthode, qui me permettra de gerer le cercle par son angle et donc de faire un ratio entre le temps et l'angle.
N'étant pas encore a mon aise en as3 je me retrouve confornter à un petit problème. J'ai crée une fonction "générique" que je veux par la suite appliquer a un MovieClip. En as 2 il suffisait de faire un truc du genre :
Code ActionScript : MovieClip.function(param1, param2, param3, etc.);
En as3 doit falloir passer par un addEventListener mais lequel ?
Merci et bonne journée.
|
|
mercredi 14 avril 2010 à 12:06:09 |
Re : api dessin as3
|
mercredi 14 avril 2010 à 13:21:09 |
Re : api dessin as3

Ariranha
|
J'ai le code ci-dessous, qui lors de la compilation m'affiche l'erreur suivante :
TypeError: Error #1006: tracerCercle n'est pas une fonction.
at timerJeu_v2_fla::MainTimeline/frame1()
Je pensais que cela venait de la déclaration de fonction :
Code ActionScript : secteur0.tracerCercle(angleEnRadians, rayon0, 50, "0xCC3300", 100);
Code ActionScript :
//a est la mesure (en radians) du secteur angulaire
//r est le rayon du secteur angulaire
//n représente le nombre de points utilisés pour tracer un cercle complet
//c est la couleur en hexadécimal
//t est la transparence
var a:Number;
var r:Number;
var n:Number;
var c:String;
var t:Number;
var rayon:Number;
var teta:Number = 0;
var dteta:Number = 2 * Math.PI / n;
var _progress:Shape = new Shape();
addChild(_progress);
function tracerCercle(a, r, n, c, t):void {
_progress.graphics.clear();
_progress.graphics.lineStyle(0,0,0);
_progress.graphics.beginFill(c,t);
_progress.graphics.moveTo(0,0);
_progress.graphics.lineTo(rayon,0);
while (teta < a) {
var x:Number = r * Math.cos(teta);
var y:Number = - r * Math.sin(teta);
_progress.graphics.lineTo(x, y);
teta += dteta;
}
x = r*Math.cos(a);
y = - r*Math.sin(a);
_progress.graphics.lineTo(x,y);
_progress.graphics.lineTo(0,0);
_progress.graphics.endFill();
}
var angleEnDegres:Number = 237;
var rayon0:Number = 80;
var secteur0:MovieClip = new MovieClip();
secteur0.x = 200;
secteur0.y = 150;
addChild(secteur0);
var angleEnRadians:Number = Math.PI*angleEnDegres/180;
secteur0.tracerCercle(angleEnRadians, rayon0, 50, "0xCC3300", 100);
|
|
mercredi 14 avril 2010 à 13:54:10 |
Re : api dessin as3
|
mercredi 14 avril 2010 à 14:04:04 |
Re : api dessin as3

Ariranha
|
Je t'avoue que je suis un peu perdu en as3 car en as2 j'aurais fais un truc du genre :
Code ActionScript :
MovieClip.prototype.tracerUnSecteurAngulaire = function(a, r, n, c, t) {
this.clear();
this.lineStyle(0,0,0);
this.beginFill(c,t);
this.moveTo(0,0);
this.lineTo(rayon,0);
var teta = 0;
var dteta = 2 * Math.PI / n;
while (teta < a) {
var x = r * Math.cos(teta);
var y = -r * Math.sin(teta);
this.lineTo(x,y);
teta += dteta;
}
x = r * Math.cos(a);
y = -r * Math.sin(a);
this.lineTo(x,y);
this.lineTo(0,0);
this.endFill();
};
angleEnDegres = 237;
rayon0 = 80;
this.createEmptyMovieClip("secteur0",0);
secteur0._x = 200;
secteur0._y = 150;
angleEnRadians = Math.PI * angleEnDegres / 180;
secteur0.tracerUnSecteurAngulaire(angleEnRadians,rayon0,50,"0xCC3300",100);
Et la pas de problème le clip secteur0 apparait a l'écran.
Sinon pour répondre a ta question oui j'aurais aimé appliquer un EnterFrame par derrière au lancement d'un timer pour modifier la valeur angle. Ainsi j'aurais bien un cercle qui se forme au fur et à mesure de l'écoulement du timer.
|
|
Cette discussion est classée dans : bouton, progress, temps, var, graphics
Répondre à ce message
Sujets en rapport avec ce message
déplacer 1 bouton et 1 clip en même temps [ par lacramour ]
est-ce-que quelqu'un saurait comment déplacer 1 bouton et 1 clip en même temps ?c'est à dire :je voudrais que, quand je déplace un bouton (startDrag)
Activer/Désactiver bouton (duplicateMovieClip) [ par jennapotter ]
Bonjour, Je cherche à désactiver le bouton survolé, et à le reactiver lorsqu'un autre est survolé. La liste de boutons est créée par un duplicateMovi
Activer/Désactiver bouton (duplicateMovieClip) [ par jennapotter ]
Je cherche à désactiver le bouton survolé, et à le reactiver lorsqu'un autre est survolé. La liste de boutons est créée par un duplicateMovie, dans un
un duplicate qui me rend dingue [ par Koubiack2lux ]
Bonsoir à tous, je vous fais un résumé rapide de la situation. J'ai fait, il y a un certain temps deja, une animation où un train passe de la droite à
boutons appelant des swf externe [ par soficapuchon ]
Bonjour je vous écrit car je suis débutante et j'ai un problème. Mon projet est de placer 17 boutons qui appellent en aléatoire des swf qui doivent se
Animation très simple a corriger svp [ par michmichman ]
Donc voila j'ai fais una animation toute conne dabord j'ais fais un bouton puis un clip:je veux que quand la personne a la souris au dessu du bouton l
deplacement et reposition [ par gobgob74 ]
bonjour, je reposte, car je galere trop.voila je voudrais me deplacer sur une image lorsque je clic sur un bouton, je voudrais que sa me deplace a un
Problème : Point d'origine différent [ par makizar ]
Bonjour,Etant débutant en ActionScript 3, je suis face à un problème que je n'arrive pas à résoudre.Je souhaite déplacer un clip en fonction du déplac
bouton arrière plan aléatoire [ par masterjed ]
Bonjour !Je suis en train de bosser mon nouveau portfolio en ligne, me disant que ce serait une bonne façon de m'attaquer à l'AS3 (en sachant que je s
Pb sur un petit bout de code [ par tracto ]
Bonjour,voila, je test une petite animation en flash avec un text de saisi appeler "text1",un text dynamique "text2" et un bouton.le but est de faire
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|