Aller au contenu

problème avec les fonctions beginFill / endFill / onEnterFrame


Zeigo

Sujets conseillés

Bonjour,

Donc voilà je suis en train de créer mon site, mon problème concerne la partie portfolio de mon site.

Je suis un jeune graphiste/infographiste et tout récemment webdesigner.

L'idée de mon site est de me définir en tant que "connecteur d'idées", le client a une idée, un projet

et je suis la pour connecter tout sa pour en faire un tout.

L'idée de base est donc d'utiliser un système de navigation a base de "connectique"

Pour faire cela j'ai utilisé un fichier .fla que j'ai trouvé sur le net :

lien du fichier

Je l'ai modifié pour qu'il se déclenche lorsque je passe sur un bouton, j'y ai accroché différent clips et j'ai changé son apparence.

Après a cause de mon niveau je bloque

-Je voudrais sois que ce "fil" sois contrait sur la partie droite de mon fla (pour ne pas qu'il passe devant les autres éléments)

problème: ne fonctionne pas avec un startDrag (sinon j'aurais trouvé (si si je suis pas si nul^^))

-Sois que la connectique reste enclenché lorsque je clique sur le bouton (voir fichier)

problème: ne fonctionne pas avec un startDrag (donc pas de stopDrag )

Certains dirons : t'as pas trouvé plus simple pour ton premier site ! ^^ (moi même je me pose la question)

mais l'idée et venu avant que je commence à apprendre Flash et j'ai vraiment envie d'y arriver.

Je serais très reconnaissant a quiconque me filerai un petit coup de main.

Ci-joint le code en AS2 (je voulais joindre le fichier .fla mais je reçoie un message "You aren't permitted to upload this kind of file")(le rendu est plutôt similaire au lien ci-dessus)

Si vous avez des conseils, des liens, des avis, des idées ou tout autre chose qui pourrait me permettre d'améliorer tout sa nésitez pas, je suis ouvert

PS: je ne sais pas si j'ai très bien nommé le post

code:


on(rollOver){

MovieClip.prototype.DrawCircle=function(x,y,r){
this.moveTo(x+r,y);
this.beginFill("0xFBFFA4",100);
for(var t=0;t<Math.PI*2;t+=.5){
this.lineTo(x+r*Math.cos(t),y+r*Math.sin(t));
}
this.endFill();
}
FindAngle = function (x1, x2, y1, y2){
return Math.atan2(y2-y1, x2-x1);
};
Distance=function(x1,x2,y1,y2){
return Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
}
Interpolate=function(x1,y1,x2,y2,n){
var dist= Distance(x1,x2,y1,y2);
var ang = FindAngle(x1,x2,y1,y2);
var points = [];
for(var l = 0;l<=dist;l+=dist/n){
var x =x1+l*Math.cos(ang);
var y = y1+l*Math.sin(ang);
points.push({x:x,y:y});
}
return points;
}
DrawNodes=function(array){
_root.createEmptyMovieClip("line",1).lineStyle(4.5,0x000000,100);
line.moveTo(array[0].x,array[0].y);
for(var i = 1; i<array.length-1;i++){
line.lineTo(array[i].x,array[i].y);
jack._x=array[i].x;
jack._y=array[i].y;}
}
currentnodes=gotonodes=Interpolate(clip_01._x,clip_01._y,_xmouse,_ymouse,14);
onMouseMove=function(){
gotonodes=Interpolate(clip_01._x,clip_01._y,_xmouse,_ymouse,14);
}
onEnterFrame=function(){
for(var node in gotonodes){
currentnodes[node].x=currentnodes[node].x+(gotonodes[node].x-currentnodes[node].x)/(node*node/30+1);
currentnodes[node].y=currentnodes[node].y+(gotonodes[node].y-currentnodes[node].y)/(node*node/30+1);
}
DrawNodes(currentnodes);
}
}

image1rt.th.jpg

Lien vers le commentaire
Partager sur d’autres sites

hello,

Je ne comprends pas bien ce que tu souhaites faire (Ton anim finale, même si elle fonctionne pas aiderait pas mal à la compréhension).

Ce que je peux te dire, c'est qu'amha, tu y arriverai plus facilement en utilisant la librairie twin de flash (ou pour te faciliter, TweenLite que tu trouveras sur greensock).

Sans trop réfléchir, il te faut écouter :

Sur la scène :

- enterFrame : pour le déplacement de la souris et déclencher un twin en conséquence sur le carré

Sur le twin :

- onUpdate : tu retrace le fil.

D'après ce que j'ai cru comprendre, ton carré ne doit pas excéder un certain _x. Tu définirai ça dans le twin en y introduisant un max de ton _x.

Pour le faire avec ton animation actuelle (sans trop regarder encore une fois) :


gotonodes=Interpolate(clip_01._x,clip_01._y,Math.min(_xmouse,XXX),_ymouse,14);

Lien vers le commentaire
Partager sur d’autres sites

hello,

Je ne comprends pas bien ce que tu souhaites faire (Ton anim finale, même si elle fonctionne pas aiderait pas mal à la compréhension).

Ce que je peux te dire, c'est qu'amha, tu y arriverai plus facilement en utilisant la librairie twin de flash (ou pour te faciliter, TweenLite que tu trouveras sur greensock).

Merci d'avoir pris du temps pour me répondre,

Et bien j'ai lu quelques articles sur la librairie twin et d'après ce que j'ai compris cela sert à créer des interpolations uniquement avec du code (c'est bien cela ?).

Bien que cela pourrais bien me servir un jour, ce n'est pas mon but.

Pour ce qui de mon anim finale je n'arrive pas à faire en sorte qu'elle pèse moins de 1,6Mo, donc je n'arrive pas à la mettre sur le forum (une alternative ?).

La partie de code ma permit de régler un de mes deux problème puisque lorsque je met :

currentnodes=gotonodes=Interpolate(clip_01._x-40,clip_01._y,Math.max(_xmouse,950),_ymouse,14);

Mon clip est belle est bien contraint sur _x j'ai juste changé min en max pour que cela soit du bon coté :D

Donc un grand MERCI

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...