Comunidad de diseño web y desarrollo en internet online

problemassssss!!!!

Citar            
MensajeEscrito el 20 Mar 2010 05:51 pm
:shock:
Hola que tal... necesito una mano en este asunto:

Tengo un .fla con dos capas y ambas con un solo frame, en la cada inferior hice una lluvia de estrellas por as y en la capa superior necesito poner un objeto. Esto hasta el momento está muy claro, todo lo tengo realizado. El problema que tengo es que cuando pongo el objeto en la capa superior resulta que publicar el swf me muestra que el objeto no queda por encima de la lluvia de estrellas... el as que tengo para la lluvia de estrellas me queda por encima de todo lo que coloque.....

Quiero saber cómo hacer que algún objeto que ponga me quede por encima de este as.

Gracias...!!!

Por dmmb18

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Mar 2010 08:11 pm
no tiene nada que ver el actionscript con las capas del fla

lo que deberias hacer, es ( suponiendo que la lluvia sea un Sprite o otro DisplayObject ) un addChildAt ( )

entonces pones la lluvia en la posicion 0, por lo cual quedaria abajo de todo:

addChildAt ( lluvia , 0 );

Por voices

43 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Mar 2010 03:34 pm
Hola voices!!!
estoy un poco enredado poniendo ese script que me dices: addChildAt (Star, 0 );

Quisiera mostrarte como tengo el código y me ayudas si puedes...

Por dmmb18

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Mar 2010 03:46 pm
addChild sirve para agregar un objeto a la lista de objectos visibles, es decir que se mostrara en la pantalla.

cada objeto que se agrega se va poniendo en la lista de manera que el primero esta en el nivel 0, el siguiente en el nivel 1 y asi sucesivamente.

si el objeto en el nivel 0 se superpone con el objeto en el nivel 1 , el objeto 1 se vera sobre el objeto 0 , asi como el objeto 1 estaria debajo del 2 , etc.

al crear tu efecto de lluvia, supongo q lo hiciste dentro de un sprite, shape o movie clip, por lo cual lo agregarias a la diplay list usando addChild ( lluvia );

addChildAt hace lo mismo que addChild, solo que elegis el nivel en el cual se posiciona el objeto, por lo cual si pones 0, estara abajo de todo, es decir que nada se va a ver por debajo de ese objeto

Por voices

43 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Mar 2010 04:12 pm
Dmmb18, lo que ocurre cuando tenemos algo en "tiempo de diseño" (tu MC de la primera capa) Flash lo considera como si fueran "depths negativas". Vamos, que cualquier DisplayObject que añadamos se añadirá encima de cualquier cosa que tengamos en diseño. Existen pues tres posibles soluciones
1.-No tener nada en tiempo de diseño y añadir lo último un objeto de tu clase.
2.-Da un "nombre de instancia" a tu MC (por ejemplo, "sobretodo") y
a)escribimos, al principio del todo

Código ActionScript :

setChildIndex(sobretodo,0)

Y añadimos las gotas con

Código ActionScript :

addChildAt(gota,0)

b)Cuando añadimos una gota (o cuando hemos añadido la última), le cambiamos el índice a "sobretodo"

Código ActionScript :

addChild(gota)
setChildIndex(sobretodo,numChildren)

3.-Cada vez que añadimos una gota intercambiamos el depth de la gota por la depth de "sobretodo" o lo hacemos cuando hemos añadido la última gota

Código ActionScript :

addChild(gota)
swapChildren(sobretodo,gota)

NOTA:Las "depths" (lista de visualización) de Flash funcionan de modo que cuando colocamos algo en una "depth", se recolocan todas las demás.

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Mar 2010 05:00 pm
Hola compañeros voice y Eliseo2 cómo están...!!!

compañeros les cuento que he realizado la lluvia de estrellas de una manera bastante diferente a las posibles soluciones que me dan, que vaina... estoy un poco preocupado por no encontrar solución. He intentado pero no me da. Quiero explicarles como he trabajo.

Como primero les indico que en esta dirección pueden mirar la lluvia para que vean el ejemplo claro de lo que hablo compañeros:

http://inngeniarte.com/

Ahora bién les explico.

tengo en una capa del fla tres frame cada uno con el siguiente código:

FRAME1:

numStars= 500;

factor= 140;
depth=100;
velocity=1;
var myStars = new Array (numStars);
var PRP= new Point3d (0,0,-100);
var d = Math.abs(PRP.z);

function Star() {
this.x = Math.random()*1410-670;
this.y = Math.random()*1410-400;
this.z = Math.random()*150+depth+PRP.z;
this.bright= this.z;
}

function Point3d(x,y,z) {
this.x = x;
this.y = y;
this.z = z;
}

function Point2d(x,y) {
this.x = x;
this.y = y;
}

var center= new Point2d(320,240);

function movePRP(){
PRP.x = 0;
PRP.y = 0;
PRP.z = PRP.z+velocity;
}
function Projection(input){
res = new Point2d();
res.x = input.x/(((input.z-PRP.z)/d)+0.05);
res.y = input.y/(((input.z-PRP.z)/d)+0.05);
return (res);
}

for (i=0; i<numStars; i++){
myStars[i] = new Star();
duplicateMovieClip ("_root.star", "star"+i, i);
}


________________________


FRAME2:

var temp = new Point2d();


for (i=0; i<numStars; i++) {
temp = Projection (myStars[i]);
setProperty ("star"+i, _x, temp.x + center.x);
setProperty ("star"+i, _y, temp.y + center.y);
setProperty ("star"+i, _xscale,factor-(myStars[i].z-PRP.z)/2);
setProperty ("star"+i, _yscale,factor-(myStars[i].z-PRP.z)/2);
if (myStars[i].z<=PRP.z){
myStars[i] = new Star();
}
}
movePRP();



________________________


FRAME3:

gotoAndPlay(2);





les agradezco mucho por la ayuda que me están brindando.... que facilidad hay de que me pudieran dar una solución en este caso?

gracias compañeros...

Por dmmb18

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Mar 2010 05:02 pm
el cuadrado rojo que vemos en el link... ese es el objeto que necesito que quede por encima de la lluvia...!!!

Por dmmb18

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Mar 2010 05:13 pm
Estás con AS.2 (realmente AS.1) Así que la mejor solución que le veo es que el cuadrado lo "attaches". Vamos, en la librería seleccionas el símbolo del cuadrado y le das "nombre de linkage". (por ejemplo "cuadrado")
Luego vale con que hagas un attachMovie a una "depth" muy muy grande

Código ActionScript :

attachMovie("cuadrado","cuadrado",2000)

Pero ya te digo que no es AS.3.

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Mar 2010 08:26 pm
compaqs!!!!! gracias.... ya solucioné el problema... quedo muy agradecido por sus aportes, realmente les agradezco...

Saludos...

Por dmmb18

8 de clabLevel



 

firefox

 

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