Comunidad de diseño web y desarrollo en internet online

Flash vs $LO_QUE_SEA (Monopolio?, Mejores tecnicas?)

Citar            
MensajeEscrito el 15 May 2004 10:28 pm
Una de las principales falencias de flash es su precaridad como herramienta de diseño gráfico.

Aunque eso no limita a muchos diseñadores, como por ejemplo Freddie, que hacen cosas fabulosas con él. Yo nunca pude.

Por eso creo que lo mejor que podrías hacer es usar Photoshop, o Fireworks, para hacer tus botones.

Ambos programas tienen "estilos de capa", o "efectos que te permiten crear esa sensación de relieve. Te aconsejo que explores e investigues en ambos. Luego simplemente exportás tu gráfico terminado como png o swf, y lo importás dentro del flash. Es conveniente que importes dichos gráficos dentro de símbolos, ya sea como g´rafico, o como movei clip, lo cual te va a permitir tener mejor control de ellos.



Otra cosa: y que Dan me perdone... No te quedes solo con Flash, ahí está LiveMotion, de Adobe, que es muy similar, y para lo que querés hacer te viene como pintado. Siempre es bueno conocer otros softs que hagan tu trabajo más fácil o más atractivo.

Saludos, y espero que te sirva.

Por 5h1v4

125 de clabLevel

1 tutorial

 

unknown
Citar            
MensajeEscrito el 16 May 2004 12:53 pm
Estoy muy de acuerdo con gersonm, es interesante usar 100% flash, pero es muy trabajoso, y como dijese oportunamente B. Franklin "Time it's money".

Además es interesante reflexionar sobre qué pasa cuando una herramienta tecnológica se hace casi monopólica por su uso mayoritario. Queremos un fabuloso hiperespacio de información libre que nos quite el aliento, a mí me gustaría que hasta mi webmail fuese como esas páginas que te dejan sin palabras, sintiéndote un mediocre diseñador. Si todo lo que se refiere a diseño de interactividad, y animación para web lo hacemos en Flash o Director, entonces la web animada e interactiva se volverá Macromediatizada (¿dije quééééé..? :shock: ¿se entiende? ). Porque queramos o no el software condiciona nuestros trabajos a ser de tal o cual manera, sin quitar la impronta creativa de cada diseñador o desarrollador. Más peligroso se vuelve ese monopolio si considerás que estas herramientas son para el proceso de la información. La información te da conocimiento, y el conocimiento te da la libertad de elegir. Si del vamos no podemos elegir la herramienta con la cual hacer fluir la información... vamos cagados.

Por eso siempre aliento a explorar otros softs, a empujar los límites de nuestra capacidad para prescindir de tal otro, a usar standards libres, como ecmascript, css, dhtml, etc.

Saludos, y piénsenlo.

Por 5h1v4

125 de clabLevel

1 tutorial

 

unknown
Citar            
MensajeEscrito el 16 May 2004 04:48 pm
Emmm, para empezar, SWF es uin formato libre http://www.openswf.org/ ; por eso hay tantos programas que son capaces de exportar SWF, pero no crear FLAs que son el formato de exclusivamente Flash.



Flash no solo esta pensando para animaciones de publicidad e intros que hacen que la gente los odie, esta pensando para hacer RIAs (Rich Internet Applications) de alta capacidad e interactividad; los diseños impresionantes solo sirven para impresionar, pero no son ni utiles y muchas veces no son usables (!)



Para eso mismo se creo Flex!, Flex es la herramienta pensada en el desarrollo rapido de RIAs para la web.



El uso de las herramientas debe ser equilibrado (Si no, yo usaria Flash en todo Cristalab, y tambien lo haria en clab_v2, pero no) cada herramienta esta para lo que esta, Fireworks como la mejor herramienta de edición y exportación de graficos para la web (Repito, tengo benchmarks que lo demuestran), Dreamweaver como el mejor integrador de tecnologias compatible con los estamndares para Internet y Flash que ... no creo que necesite explicación



Pero bueno, ya nos desviamos del tema ... como se hace en Fireworks? :D

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 16 May 2004 05:17 pm
Cuando se le trabaja un poco a las herramientas de Flash, CREEME, PODRAS HACER MUCHOS EFECTOS, HARAS TUS BOTONES 3D, es mas ... los sacas rapidito ! obviamente no obtendras los superresultados, pero la verdad, seamos sinceros, uno cuando hace supercosas en otros programas, y los pasa a Flash, en gif, png, jpg ... lo que sea, pues tu trabajo empieza a pesar mas en kb, y pues la idea en mi caso personal, es siempre dar al usuario peliculas tan livianas como sea posible, bien sea cerando lo que se pueda en Flash, o tratando de cargar imagenes, sonidos, videos, en un segundo plano, no todo incluido dentro de la pelicula.



Saludos !



JOHNMARTIN

Por JOHNMARTIN

Claber

1222 de clabLevel

4 tutoriales
4 articulos
2 ejemplos

Genero:Masculino  

||| BOGOTA COLOMBIA |||

unknown
Citar            
MensajeEscrito el 16 May 2004 06:25 pm
Lo de simular 3d en Flash es algo bastante tedioso, sigo diciendo que zapatero a tu zapatos.....sin embargo es posible no simular sino crear 3d desde Flash, pero sólo lo he podido lograr a través del álgebra lineal utilizando operaciones entre matrices como producto punto, producto cruz, y algo de normalización de vectores para lograr niveles de luz......pero no me gusta matar un zancudo con un cañón, así que cuando es algo estático, simplemente uso Swift3D.

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 16 May 2004 06:41 pm
El algebra lineal no es la que da las bases de la tridimensionalidad sino mas bien la que da las bases del calculo vectorial para que este a su vez, si genere 3D en Flash (Todo ligado a la Trigonometria en Flash)



Por otro lado, Swift3D es una opción, Plasma es la otra.

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 16 May 2004 06:59 pm
Por supuesto que es la Trigonometría, pero es el álgebra quien se convierte en una herramienta para que las operaciones trigonométriks se puedan simplificar....

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 16 May 2004 09:34 pm
Si que puede simular 3d dentro de flash, mis conocimientos dan hasta aqui, pero lo posteo para mostrar:



Torno 3d: Como el Lathe de 3d Studio max, creas un Spline que luego es llevado por el eje a 360 grados creando la silueta 3d.

Esto lo hace rendereando los puntos que conforman la spline en una circunsferencia dada por los EjeX, EjeY y sus radios. Espero le guste:

Código :


//VARIABLES DE POSICION

//VARIABLES EJES 

ejeX = 150;

ejeY = 10;

MovieClip.prototype.rotateXY = function(s, xo, a, yo, zo, eX, eY) {

   this.a = a;

   this.speed = s;

   this.camara = 300;

   this.radioX = eX;

   this.radioY = eY;

   this.xo = xo;

   this.yo = yo;

   this.zo = zo;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radioX*Math.sin(this.a);

      this._y = this.yo+this.radioY*Math.cos(this.a);

      this.z = this.z0;

      this.pers = this.camara/(this.z+this.camara);

      this._x *= this.pers;

      this._y *= this.pers;

      this.a>=6.3 ? (id1.removeMovieClip(), _root.onEnterFrame=null, this.removeMovieClip()) : this.a += this.speed;

   };

};

render = false;

onMouseDown = function () {

   render ? clean() : null;

   a++;

   attachMovie("id", "id"+a, a, {_x:_xmouse, _y:_ymouse});

};

clean = function () {

   render = false;

   _root.clear();

   a = 0;

};

lathe = function (s) {

   render = true;

   for (var i = 2; i<=a; i++) {

      eval("id"+i).rotateXY(s, id1._x, 0, eval("id"+i)._y, 0, id1._x-(eval("id"+i)._x), ejeY);

   }

   _root.onEnterFrame = function() {

      this.lineStyle(1, 0, 10);

      this.moveTo(id1._x, id1._y);

      for (var i = 2; i<=a; i++) {

         this.lineTo(eval("id"+i)._x, eval("id"+i)._Y);

      }

   };

};






Cubo 3d:

Código :


//VARIABLES DE POSICION

x = 250;

y = 100;

y2 = 300;

//VARIABLES EJES 

ejeX = 150;

ejeY = 30;

//VARIABLES COLOR

ColorCaras = 0x666666;

//VARIABLES ALPHA CARAS

transp = 40;

velocidad = 0.1;

//FIN VARIABLES

//CUBO CODE

MovieClip.prototype.rotateXY = function(s, xo, a, yo, zo, eX, eY) {

   this.a = a;

   this.speed = s;

   this.camara = 300;

   this.radioX = eX;

   this.radioY = eY;

   this.xo = xo;

   this.yo = yo;

   this.zo = zo;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radioX*Math.sin(this.a);

      this._y = this.yo+this.radioY*Math.cos(this.a);

      this.z = this.z0;

      this.pers = this.camara/(this.z+this.camara);

      this._x *= this.pers;

      this._y *= this.pers;

      this.a += this.speed;

   };

};

makeFace = function (mc1, mc2, mc3, mc4, col, i) {

   this.createEmptyMovieClip("cont"+i, i*100);

   this["cont"+i].beginFill(col, transp);

   this["cont"+i].lineStyle(0, 0, 10);

   this["cont"+i].moveTo(mc1._x, mc1._y);

   this["cont"+i].lineTo(mc2._x, mc2._y);

   this["cont"+i].lineTo(mc3._x, mc3._y);

   this["cont"+i].lineTo(mc4._x, mc4._y);

   this["cont"+i].lineTo(mc1._x, mc1._y);

   this["cont"+i].endFill();

};

//FIN CUBO CODE

ball1.rotateXY(velocidad, x, 0, y, 0, ejeX, ejeY);

ball2.rotateXY(velocidad, x, Math.PI/2, y, 0, ejeX, ejeY);

ball3.rotateXY(velocidad, x, Math.PI, y, 0, ejeX, ejeY);

ball4.rotateXY(velocidad, x, Math.PI*3/2, y, 0, ejeX, ejeY);

ball5.rotateXY(velocidad, x, 0, y2, 0, ejeX, ejeY);

ball6.rotateXY(velocidad, x, Math.PI/2, y2, 0, ejeX, ejeY);

ball7.rotateXY(velocidad, x, Math.PI, y2, 0, ejeX, ejeY);

ball8.rotateXY(velocidad, x, Math.PI*3/2, y2, 0, ejeX, ejeY);

onEnterFrame = function () {

   makeFace(ball2, ball1, ball4, ball3, ColorCaras, 1);

   makeFace(ball1, ball2, ball3, ball4, ColorCaras, 2);

   makeFace(ball1, ball5, ball8, ball4, ColorCaras, 3);

   makeFace(ball2, ball6, ball7, ball3, ColorCaras, 4);

   makeFace(ball4, ball3, ball7, ball8, ColorCaras, 5);

   makeFace(ball1, ball5, ball6, ball2, ColorCaras, 6);

};





Cilindro 3d:

Código :


MovieClip.prototype.rotateXY = function(s, xo, a, yo, zo) {

   this.a = a;

   this.speed = s;

   this.camara = 300;

   this.radio =100

   this.xo = xo;

   this.yo = yo;

   this.zo = zo;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radio*Math.cos(this.a);

      this._y = this.yo+this.radio*Math.sin(this.a);

      this.z = 150;

      this.pers = this.camara/(this.z+this.camara);

      this._x *= this.pers;

      this._y *= this.pers;

      this.a += this.speed;

   };

   this.onMouseUp = function() {

      this.onEnterFrame = function() {

         this._x = this.xo+this.radio*Math.cos(this.a);

         this._y = this.yo+this.radio*Math.sin(this.a);

         this.z = this.z0+this.radio*Math.sin(this.a);

         this.pers = this.camara/(this.z+this.camara);

         this._x *= this.pers;

         this._y *= this.pers;

         this.a += this.speed;

      };

   };

   this.onMouseDown = function() {

      this.onEnterFrame = null;

   };

};

makeFace = function (mc1, mc2, mc3, mc4, col) {

   this.beginFill(col, 10);

   this.lineStyle(0);

   this.moveTo(mc1._x, mc1._y);

   this.lineTo(mc2._x, mc2._y);

   this.lineTo(mc3._x, mc3._y);

   this.lineTo(mc4._x, mc4._y);

   this.lineTo(mc1._x, mc1._y);

   this.endFill();

};

for (var i = 1; i<39; i++) {

   node = this.attachMovie("node", "ball"+i, i*10);

   node.rotateXY(0.05, 150, ang += 50, 150, 150);

   node._alpha = 0;

}

ang = 0;

for (var i = 39; i<(39*2); i++) {

   node = this.attachMovie("node", "ball"+i, i*10);

   this["ball"+i].rotateXY(0.05, 150, ang += 50, 300, 150);

   node._alpha = 0;

}

delete ang;

end = 40;

init = 1;

inc = 1;

onEnterFrame = function () {

   this.clear();

   for (var i = 0; i<30; i++) {

      makeFace(this["ball"+(init+(inc*i))], this["ball"+(init+((inc*i)+1))], this["ball"+(end+(inc*i))], this["ball"+(end+(inc*(i-1)))], 0);

   }

};






Espiral 3d Customizada:Con interaccion del mouse en direccion y altura:

Código :


MovieClip.prototype.rotateXY = function(s, xo, a, yo, zo, r) {

   this.turn = true;

   this.a = a;

   this.speed = s;

   this.camara = 600;

   this.radio = r;

   this.xo = xo;

   this.yo = yo;

   this.zo = zo;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radio*Math.cos(this.a);

      this._y = this.yo+this.radio*Math.sin(this.a);

      this.a += this.speed;

   };

   _root.onMouseMove = function() {

      _root._xmouse-oldX>0 ? der=1 : der=-1;

      oldX = _root._xmouse;

      _root._ymouse-oldY>0 ? up=1 : up=-1;

      oldY = _root._ymouse;

   };

   this.onMouseUp = function() {

      this.onEnterFrame = null;

      this.gotoAndStop(2);

      if (this.turn) {

         this.turn = false;

         this.onEnterFrame = function() {

            this._x = this.xo+this.radio*Math.cos(this.a);

            this._y = this.yo+this.radio*Math.sin(this.b);

            this.z = this.z0+this.radio*Math.sin(this.a);

            this.pers = this.camara/(this.z+this.camara);

            this._x *= this.pers;

            this._y *= this.pers;

            this._alpha = this.pers*50;

            this._xscale = this._yscale=this.pers*100;

            this.a += this.speed*der;

            this.b += this.speed*up;

         };

      } else {

         this.gotoAndStop(1);

         this.turn = true;

         this._xscale = this._yscale=100;

         this._alpha = 100;

         this.onEnterFrame = function() {

            this._x = this.xo+this.radio*Math.cos(this.a);

            this._y = this.yo+this.radio*Math.sin(this.a);

            this.a += this.speed;

         };

      }

   };

};

for (var i = 1; i<15; i++) {

   for (var j = 1; j<15; j++) {

      node = this.attachMovie("node", "ball"+i+"_"+j, d++);

      node.rotateXY(0.05, 250, ang += 50, 200, 100, rad += 2);

   }

}







Engine para la coordenada Z:

Código :


MovieClip.prototype.z = function(z) {

   this.x = this._x;

   this.y = this._y;

   this.z = z;

   this.camara = 300;

   this.pers = this.camara/(this.z+this.camara);

   this._x *= this.pers;

   this._y *= this.pers;

   this._xscale = this._yscale=this.pers*100;

};

makeFace = function (mc1, mc2, mc3, mc4, col, i) {

   this.createEmptyMovieClip("cont"+i, i*100);

   this["cont"+i].beginFill(col, 20);

   this["cont"+i].lineStyle(1, 0, 50);

   this["cont"+i].moveTo(mc1._x, mc1._y);

   this["cont"+i].lineTo(mc2._x, mc2._y);

   this["cont"+i].lineTo(mc3._x, mc3._y);

   this["cont"+i].lineTo(mc4._x, mc4._y);

   this["cont"+i].lineTo(mc1._x, mc1._y);

   this["cont"+i].endFill();

};

for (var i = 0; i<12; i++) {

   dot = attachMovie("id", "id"+i, i*10, {_x:150, _y:150});

   dot.z(100*i);

}

for (var i = 4; i<8; i++) {

   dot = attachMovie("id", "id"+i, i*10, {_x:600, _y:150});

   dot.z(100*(i-4));

}

for (var i = 8; i<12; i++) {

   dot = attachMovie("id", "id"+i, i*10, {_x:150, _y:450});

   dot.z(100*(i-8));

}

for (var i = 12; i<16; i++) {

   dot = attachMovie("id", "id"+i, i*10, {_x:600, _y:450});

   dot.z(100*(i-12));

}

makeFace(eval("id0"), eval("id8"), eval("id12"), eval("id4"), 0, 1000);

makeFace(eval("id1"), eval("id9"), eval("id13"), eval("id5"), 0, 1001);

makeFace(eval("id2"), eval("id10"), eval("id14"), eval("id6"), 0, 1002);

makeFace(eval("id3"), eval("id11"), eval("id15"), eval("id7"), 0, 1003);

makeFace(eval("id0"), eval("id1"), eval("id2"), eval("id3"), 0, 1004);

makeFace(eval("id4"), eval("id5"), eval("id6"), eval("id7"), 0, 1005);

makeFace(eval("id8"), eval("id9"), eval("id10"), eval("id11"), 0, 1006);

makeFace(eval("id12"), eval("id13"), eval("id14"), eval("id15"), 0, 1007);




Espirografo 3d :

Código :


//VARIABLES DE POSICION

//VARIABLES EJES 

ejeX = 150;

ejeY = 10;

MovieClip.prototype.rotateXY = function(s, xo, a, yo, zo, eX, eY) {

   this.a = a;

   this.speed = s;

   this.camara = 300;

   this.radioX = eX;

   this.radioY = eY;

   this.xo = xo;

   this.yo = yo;

   this.zo = zo;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radioX*Math.sin(this.a);

      this._y = this.yo+this.radioY*Math.cos(this.a);

      this.z = this.z0;

      this.pers = this.camara/(this.z+this.camara);

      this._x *= this.pers;

      this._y *= this.pers;

      this.a>=20 ? (id1.removeMovieClip(), _root.onEnterFrame=null, this.removeMovieClip()) : this.a += this.speed;

      this.radioX += s*3;

      this.radioY += s*10;

   };

};

render = false;

onMouseDown = function () {

   render ? clean() : null;

   a++;

   attachMovie("id", "id"+a, a, {_x:_xmouse, _y:_ymouse});

};

clean = function () {

   render = false;

   _root.clear();

   a = 0;

};

lathe = function (s) {

   render = true;

   for (var i = 2; i<=a; i++) {

      eval("id"+i).rotateXY(s, id1._x, 0, eval("id"+i)._y, 0, id1._x-(eval("id"+i)._x), ejeY);

   }

   _root.onEnterFrame = function() {

      this.lineStyle(1, random(0xff000), 5);

      this.moveTo(id1._x, id1._y);

      for (var i = 2; i<=a; i++) {

         this.lineTo(eval("id"+i)._x, eval("id"+i)._Y);

      }

   };

};





3d Aleatorio:

Código :


MovieClip.prototype.rotateXY = function(s, xo, a, yo, zo) {

   this.a = a;

   this.speed = s;

   this.camara = 250;

   this.radio = 100;

   this.xo = xo;

   this.yo = yo;

   this.zo = zo;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radio*Math.cos(this.a);

      this._y = this.yo+this.radio*Math.sin(this.a);

      this.z = this.z0+this.radio*Math.sin(this.a);

      this.pers = this.camara/(this.z+this.camara);

      this._x *= this.pers;

      this._y *= this.pers;

      this.a += this.speed;

   };

   this.onMouseUp = function() {

      this.onEnterFrame = function() {

         this._x = this.xo+this.radio*Math.cos(this.a);

         this._y = this.yo+this.radio*Math.sin(this.a);

         this.z = this.z0+this.radio*Math.sin(this.a);

         this.pers = this.camara/(this.z+this.camara);

         this._x *= this.pers;

         this._y *= this.pers;

         this.a += this.speed;

      };

   };

   this.onMouseDown = function() {

      this.onEnterFrame = null;

   };

};

makeFace = function (mc1, mc2, mc3, mc4, col) {

   this.beginFill(col, 10);

   this.moveTo(mc1._x, mc1._y);

   this.lineTo(mc2._x, mc2._y);

   this.lineTo(mc3._x, mc3._y);

   this.lineTo(mc4._x, mc4._y);

   this.lineTo(mc1._x, mc1._y);

   this.endFill();

};

ang = random(180);

for (var i = 1; i<5; i++) {

   node = this.attachMovie("node", "ball"+i, i*10);

   node.rotateXY(0.1, 150, ang += 20, 150, 150);

   node._alpha = 0;

}

ang = random(360)+180;

for (var i = 5; i<9; i++) {

   node = this.attachMovie("node", "ball"+i, i*10);

   this["ball"+i].rotateXY(0.1, 150, ang += 20, 300, 150);

   node._alpha = 0;

}

delete ang;

onEnterFrame = function () {

   this.clear();

   makeFace(ball1, ball2, ball3, ball4, 0x66666);

   makeFace(ball1, ball5, ball8, ball4, 0x99999);

   makeFace(ball2, ball6, ball7, ball3, 0);

   makeFace(ball4, ball3, ball7, ball8, 0x333333);

   makeFace(ball1, ball5, ball6, ball2, 0x222222);

   makeFace(ball2, ball1, ball4, ball3, 0x444444);

};








Estas aplicaciones son hermosas pero me llevaron mucho tiempo y son muy precarias. Solo las uso para interactividades complejas o efectos sobre fotos por ejemplo, ya que pueda utilizarlo sobre mascaras y demas, esos efectos armarlos sobre 3d Studio, Plasma, o Swift no los podrias armar







Espero que le sirvan a alguien los codes y si alguien quiere emprolijarlos sientase libre que son codigos medios desordenados por su naturaleza matematica solo me concentre en ellos.





Salu2, Hernan . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

unknown
Citar            
MensajeEscrito el 17 May 2004 01:28 am
Algunos de estos codigos ya los habia visto; sin embargo, me parece excelente tu aporte como investigación (Aunque no cites las fuentes)



No te has planteado hacer un tutorial de esto? ;)

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 17 May 2004 02:53 am
Las fuentes son : Yo mismo !!!!! JEJE



Los arme yo desde 0, en matematicas me ayudo un poco con matrices un amigo de otro foro Eliseo, pero no le habia podido entender asi que tuve que recurrir a sentarme y leer matematica, y eso. Hasta que luego de un mes entendi bien todos esos conceptos y me recorde todo los que habia olvidado JEJE



Es probable los hayas visto en algun lugar... soy el moderador de Action Script de Flash Argentina (www.flashargentina.com.ar/phpBB2) una comunidad bastante grande donde los postee de seguro mas de una vez JAJA. Ademas hay dos topics de cuando los estaba elaborando.

Ademas el cubo, plano 3d y rotations 3d, estan colgados en el home de SubFlash, una comunidad tambien muy grande, estan en seccion Flas, Matematicas.

Y seguro los postee por todos lados, JEJEJE, eran mi orgullo por aquel entonces.



Un dia de estos te armo un tutorial, de cual de todo esos codigos quieres? Porque todos usan un sistema parecido pero muy diferente para cada caso





salu2, Hernan . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

unknown
Citar            
MensajeEscrito el 17 May 2004 03:08 am
Pues un tutorial de 3D en ActionScript, es decir, supongo que todos ya que usan la misma estructura general

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 17 May 2004 03:17 am
Ahm, un detalle, en MX2004 solamente funcionan el Engine para la coordenada Z y el Cilindro 3d (teniendo en cuenta la cantidad de "node" y de "id" que usas) revisa eso

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 17 May 2004 04:37 am
Lo voy a revisar, pero no me gusta para nada el nuevo flash, asi que mucho no me preocupa. PEro gracias por la advertensia



PRegunta. Tenes idea por el cubo 3d no anda entonces? POrque el cilinder en code es casi igual.





Salu2, Hernan . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

unknown
Citar            
MensajeEscrito el 17 May 2004 04:58 am
Extractando un poco y a modo de tutorial o ayuda, aqui les paso metodos para usar 3d mediante flash:



Rotacion Y:



Código :


MovieClip.prototype.rotateY = function(s) {

   this.speed = s;

   this.camara = 300;

   this.radio = 100;

   this.xo = this._x;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radio*Math.cos(this.a);

      this.z = this.radio*Math.sin(this.a);

      this.pers = this.camara/(this.z+this.camara);

      this._x *= this.pers;

      this._alpha = this.pers*50;

      this._xscale = this._yscale=this.pers*100;

      this.a += this.speed;

   };

};

ball.rotateY(0.1);





Rotacion X:

Código :

MovieClip.prototype.rotateX = function(s) {

   this.speed = s;

   this.camara = 300;

   this.radio = 100;

   this.xo = this._x;

   this.onEnterFrame = function() {

      this._y = 200+100*Math.cos(a);

      z = 100*Math.sin(a);

      camara = 300;

      pers = camara/(z+camara);

      this._y *= pers;

      this._alpha = pers*50;

      this._xscale = this._yscale=pers*100;

      a += 0.5;

   };

};

ball.rotateX();


Rotacion ejes X Y :

Código :


MovieClip.prototype.rotateXY = function(s) {

   this.speed = s;

   this.camara = 300;

   this.radio = 100;

   this.xo = this._x;

   this.onEnterFrame = function() {

      this._x = 200+100*Math.cos(a);

      this._y = 200+100*Math.cos(a);

      z = 100*Math.sin(a);

      camara = 300;

      pers = camara/(z+camara);

      this._x *= pers;

      this._y *= pers;

      this._alpha = pers*50;

      this._xscale = this._yscale=pers*100;

      a += 0.5;

   };

};

ball.rotateXY();





Rotacion eje Z:

Código :


ball.onEnterFrame = function() {

   this._rotation += 10;

};





Es que ese eje es paralelo a la vista





Posicion X:

Código :


ball._x=10



Posicion Y:

Código :


code._y=10



Posicion Z:

Código :


MP = MovieClip.prototype;

MP.setZ = function(z) {

   this.x = this._x;

   this.y = this._y;

   this.z = z;

   this.camara = 300;

   this.pers = this.camara/(this.z+this.camara);

   this._x *= this.pers;

   this._y *= this.pers;

   this._xscale = this._yscale=this.pers*100;

};

MP.getZ = function() {

   this._z == undefined ? this.setZ(0) : null;

   return this.z;

};

MP.addProperty("_z", MP.getZ, MP.setZ);

delete MP

for (var i = 0; i<12; i++) {

   dot = attachMovie("id", "id"+i, i*10, {_x:150, _y:150});

   dot._z = 100*i;

   trace(dot._z);

}

//Se usa como _x y _y, o sea clip._z=value o trace(clip._z)







Y para finalizar la libreria 3d Basicos:

Código :


////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////Liberia 3d Basicos//////////////////////////////////////

////////////////////Powered by HERNAN | 826 Labs a divion of HERNAN | 826 Studios////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////

MP = MovieClip.prototype;

MP.rotateY = function(s) {

   this.speed = s;

   this.camara = 300;

   this.radio = 100;

   this.xo = this._x;

   this.onEnterFrame = function() {

      this._x = this.xo+this.radio*Math.cos(this.a);

      this.z = this.radio*Math.sin(this.a);

      this.pers = this.camara/(this.z+this.camara);

      this._x *= this.pers;

      this._alpha = this.pers*50;

      this._xscale = this._yscale=this.pers*100;

      this.a += this.speed;

   };

};

MP.rotateX = function(s) {

   this.speed = s;

   this.camara = 300;

   this.radio = 100;

   this.xo = this._x;

   this.onEnterFrame = function() {

      this._y = 200+100*Math.cos(a);

      z = 100*Math.sin(a);

      camara = 300;

      pers = camara/(z+camara);

      this._y *= pers;

      this._alpha = pers*50;

      this._xscale = this._yscale=pers*100;

      a += 0.5;

   };

};

MP.rotateXY = function(s) {

   this.speed = s;

   this.camara = 300;

   this.radio = 100;

   this.xo = this._x;

   this.onEnterFrame = function() {

      this._x = 200+100*Math.cos(a);

      this._y = 200+100*Math.cos(a);

      z = 100*Math.sin(a);

      camara = 300;

      pers = camara/(z+camara);

      this._x *= pers;

      this._y *= pers;

      this._alpha = pers*50;

      this._xscale = this._yscale=pers*100;

      a += 0.5;

   };

};

MP.setZ = function(z) {

   this.x = this._x;

   this.y = this._y;

   this.z = z;

   this.camara = 300;

   this.pers = this.camara/(this.z+this.camara);

   this._x *= this.pers;

   this._y *= this.pers;

   this._xscale = this._yscale=this.pers*100;

};

MP.getZ = function() {

   this._z == undefined ? this.setZ(0) : null;

   return this.z;

};

MP.addProperty("_z", MP.getZ, MP.setZ);

MP.addProperty("_rotationX", null, MP.rotateX);

MP.addProperty("_rotationY", null, MP.rotateY);

MP.addProperty("_rotationXY", null, MP.rotateXY);

trace("___MathLib3d Loaded____");

//////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////creator: Hernan Fernandez for MX

/////////////////////////////////////////////////////////////////////////////////////////////////




MEtanlo en un bloc de notas, llamenlo como quiera, algo como math3dLib.as. Y luego llamenlo asi.:

Código :


#include "math3dLib.as"





Espero les sirva a todos.



Saludos, Hernan . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

unknown
Citar            
MensajeEscrito el 17 May 2004 10:43 am
:shock: me encanta esta comunidad que empieza hablando de botones y termina con eso de arriba ...



muy bueno !

Por hRod

BOFH

1548 de clabLevel

3 tutoriales
4 articulos
4 ejemplos

Genero:Masculino  

BCN

unknown
Citar            
MensajeEscrito el 15 Oct 2004 12:18 am
Gracias os explicaís muy bien, provaré todos los consejos otros softwares,mejorar en flash......

Por vibet

38 de clabLevel



 

unknown

 

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