Comunidad de diseño web y desarrollo en internet online

clips alrededor de una circunferencia

Citar            
MensajeEscrito el 10 Dic 2008 08:09 pm
Hooooola!

Aqui me he atorao!!.... como puedo poner unos mclips alrededor de un objeto, en una circunferencia circular XD, a la misma distancia

Algo asi como:
:wink: - How do you get out a mucus form your nose?
:evil: - Mucus come out!, you're surrounded by these five fingers

Bueno me vino un ejemplo a la mente!, la cosa es q como? objetos alrededor de un objeto central, todos a la misma distancia, que tengo que saber? No se por donde empezar

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Dic 2008 08:36 pm
pues ya me lei este tutorial: http://www.cristalab.com/tutoriales/18/trigonometria-basica-en-flash.html

pero la verdad es k necesito una clases presenciales para miles de dudas al momento ;)

para conocer c (que es la distancia de un punto a otro, hipotenusa), pues facil (porque ya esta resuelto, jiji):

c = Math.sqr( (x2-x1)2 * (y2-y1)2)) ...bueno, algo asi

pero si lo que ya tengo es c definido, digamos mi distancia de x1,y1 a x2,y2 es de 25px, p.e., si quiero 8 objetos alrededor de uno al centro donde c/u tiene 25px de distancia, y estan distribuidos a 45 grados entre ellos (360/8)

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Dic 2008 12:38 am
Espero haber entendido bien, bueno intenta esto

Código :

var lado_a:Number = 0;
var lado_b:Number = 0;
var radio:Number = 50;
function circulo(num:Number) {
      for (i=0; i<=360; i+=num) {
         lado_a = (radio*Math.cos(Math.PI/180*i));
         lado_b = (radio*Math.sin(Math.PI/180*i));
         _root.attachMovie("mc","mc"+i,i);
         _root["mc"+i]._x=lado_a;      
         _root["mc"+i]._y=lado_b;
      }
}
//circulo(separacion de los mc en grados);
circulo(45);



suerte :)

Por Keith_NT

451 de clabLevel

3 tutoriales

 

México, Estado de México

firefox
Citar            
MensajeEscrito el 11 Dic 2008 07:43 pm
SSSIIIII: Gracias!, me ha servido muchisimo ::GRACIAS::

una consulta mas, ojala que puedas, le agregue una ayudita del flash(f1), para saber la distancia en pixeles del centro al mclip, pero no creo sea la distancia real o_0', ¿que me esta enviando?

Código PHP :

var centro:MovieClip = _root.createEmptyMovieClip('centromc',_root.getNextHighestDepth());
centro._x = Stage.width/2;
centro._y= Stage.height/2;
var lado_a:Number = 0;
var lado_b:Number = 0;
var radio:Number = 100;
// objs en la circunferencia
function circulo(num:Number) {
   var num:Number= 360/num;
      for (i=0; i<=360; i+=num) {
         lado_a = (radio*Math.cos(Math.PI/180*i));
         lado_b = (radio*Math.sin(Math.PI/180*i));
         var clip:MovieClip = centro.attachMovie("clip","mc"+i,i);
       new mx.transitions.Tween(clip, "_x", mx.transitions.easing.Elastic.easeOut, 0, lado_a, 3, true);
       new mx.transitions.Tween(clip, "_y", mx.transitions.easing.Elastic.easeOut, 0, lado_b, 3, true);
         //clip._x = lado_a;      
         //clip._y = lado_b;
       clip.grado = i;
       clip.onRelease = function () { 
       trace (this._name+': (var grado:'+this.grado+') -----------(en bucle:for)------------ /'+newline+
       '180*i: '+180*this.grado + ' --> Math.PI/ --> ' + Math.PI/180*this.grado +newline+
       '(X) lado_a : radio*Math.cos(Math.PI/180*i)) --> ' + radio*Math.cos(Math.PI/180*this.grado) +newline+
       '(Y) lado_b : radio*Math.sin(Math.PI/180*i)) --> ' + radio*Math.sin(Math.PI/180*this.grado));
       trazo_h (this);
       }
      }
}
// linea (hipotenusa)
function trazo_h (param1:MovieClip):Void {
   var destino:MovieClip = param1;
    var origX = 0; //centro._x;
    var origY = 0; //centro._y;
    var newX = param1._x;
    var newY = param1._y;
    var minY = Math.min(origY, newY);
    var nextDepth:Number = canvas_mc.getNextHighestDepth();
    var line_mc:MovieClip = centro;
    line_mc.moveTo(origX, origY);
    line_mc.lineStyle(2, 0x000000, 100);
    line_mc.lineTo(newX, newY);
    var hypLen:Number = Math.sqrt(Math.pow(line_mc._width, 2)+Math.pow(line_mc._height, 2));
    line_mc.createTextField("length"+nextDepth+"_txt", canvas_mc.getNextHighestDepth(), newX, newY-22, 100, 22);
    line_mc['length'+nextDepth+'_txt'].text = Math.round(hypLen) +" pixels";
}

//circulo(separacion de los mc en grados);
circulo(12);

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Dic 2008 07:56 pm
Ya que es un circulo y desde el inicio se declaro una variable radio, por logica del centro a cualquier clip, la distancia seria igual a la del radio (aumentando o disminuyendo lo ancho o alta del clip),
pero de todas formas le hago un cambio:

Código ActionScript :


function trazo_h (param1:MovieClip):Void { 
   var destino:MovieClip = param1; 
    var origX = 0;//centro._x; 
    var origY = 0;//centro._y; 
    var newX = param1._x; 
    var newY = param1._y; 
    var minY = Math.min(origY, newY); 
    var nextDepth:Number = canvas_mc.getNextHighestDepth(); 
    var line_mc:MovieClip = centro; 
    line_mc.moveTo(origX, origY); 
    line_mc.lineStyle(2, 0x000000, 100); 
    line_mc.lineTo(newX, newY);
   ///////////////////////////////////   
   var hypLen:Number = Math.sqrt(Math.pow(newX, 2)+Math.pow(newY,2));  
   //////////////////////////////////
    line_mc.createTextField("length"+nextDepth+"_txt", canvas_mc.getNextHighestDepth(), newX, newY-22, 100, 22); 
    line_mc['length'+nextDepth+'_txt'].text = Math.round(hypLen) +" pixels"; 
} 


espero sea lo que necesitas, suerte :)

Por Keith_NT

451 de clabLevel

3 tutoriales

 

México, Estado de México

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.