Comunidad de diseño web y desarrollo en internet online

Ajustar y cambiar de tamaño a escena dentro de movieclip

Citar            
MensajeEscrito el 01 Sep 2008 06:12 pm
Hola, quizas sea una tonteria lo que voy a preguntar, pero no e encontrado la manera de hacerlo.

Tengo un movieclip con una escena dentro, para esto dentro del movieclip en el fotografa 1 pongo lo siguiente:
loadMovieNum("pizza.swf", 0);

Mi problema es que esta escena tiene el mismo tamaño que en la que quiero cargarlo 800 x600, entonces no se me ajusta al movieclip.

Desearia que mi escena se ajustara al movieclip, y si no es posible haber si puedo hacer para cambiar de tamaño la escena que cargo en el movieclip

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 06:19 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Sep 2008 06:58 pm
haber si me puede explicar un poco, porque he intentado un par de cosas, pero en el articulo que me pasaste no veo exactamente lo que necesito, ya que yo no quiero utilizar un preload.
lo puse en el nivel 0, por intentar otro diferente, pero sigue ocurriendo lo mismo.
loadMovieNum("pizza.swf", 1);


lo que desearia es ajustar la escena que hay dentro del movieclip al movieclip

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 07:11 pm
Si no haces preload, no puedes cambiarle el tamaño, la idea es:

- Cargarlo en un contenedor
- Hacer preload
- Cuando termina de cargar, reescalar el contenedor al tamaño deseado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Sep 2008 07:14 pm
Mira lo que te recomendó Solisarg es utilizar MovieClipLoader.loadClip no para utilizar un preloader, sino para que puedas chequear cuando se terminó de cargar el contenido del movieClip y entonces darle las medidas, en este ejemplo se tomasn las medidas, pero en el caso tuyo se las puedes dar:

http://www.cristalab.com/foros/t58877_propiedades-de-anchura-y-altura-de-un-movieclip.html

ahora si quieres de todas maneras utilizar MovieClip.loadMovie, a el contenido que vas a leer no le interesa el tamaño de tu movieClip, ya que este tamaño se remplazará por el nuevo que tiene el SWF, ahora si varías la escala del movieClip donde haras el loadMovie, por ejemplo en un 50%, entonces el contenido leido heredará las propiedades del MC y quedará reducido al 50% también.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Sep 2008 07:15 pm
Bueno ya había respondido Solis, dos respuestas mejor que una.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Sep 2008 07:34 pm
No entiendo muy bien el enlace que me mandaste, soy nueva en esto y no comprendo ya que esta cargando el movieclip y la imagen.
Este codigo lo debo de poner dentro del movieclip? .

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 07:39 pm
Para aprender a utilizar la clase MovieClipLoader, puedes ir a la misma ayuda de flash, ahí está muy bien explicado, pero si eres muy nueva y no te quieres complicar, utiliza mi segundo consejo:


ahora si quieres de todas maneras utilizar MovieClip.loadMovie, a el contenido que vas a leer no le interesa el tamaño de tu movieClip, ya que este tamaño se remplazará por el nuevo que tiene el SWF, ahora si varías la escala del movieClip donde haras el loadMovie, por ejemplo en un 50%, entonces el contenido leido heredará las propiedades del MC y quedará reducido al 50% también.


No es la manera más limpia pero logrará lo que quieres.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Sep 2008 07:48 pm
ya consegui cambiar el tamaño, ahora mi duda es como hago que la escena cargada en el movieclip este en play, porque no me funciona. Esto es lo que utilice en el boton donde llamo al movieclip

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mc_pizza:MovieClipLoader = new MovieClipLoader();
mc_pizza.addListener(this);
mc_pizza.loadClip("pizza.swf", container);

function onLoadInit(mc_pizza:MovieClip) {
mc_pizza._width = 300;
mc_pizza._height=300;
}

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 07:50 pm
Probaste darle play?

Código ActionScript :

function onLoadInit(mc_pizza:MovieClip) {
    mc_pizza._width = 300;
    mc_pizza._height=300;
    mc_pizza.play();
} 

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Sep 2008 07:51 pm
si ya probe y no me funciona, quizas no hice la carga de la escena donde deberia.

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 08:12 pm
especifico mi pregunta, la escena se carga correctamente con el codigo puesto en el fotograma de la escena principal:

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("pizza.swf", container);

function onLoadInit(mc_pizza:MovieClip) {
mc_pizza.play();
mc_pizza._width = 300;
mc_pizza._height=300;
}


El problema es el siguiente, en la escena que cargo tengo un par de animaciones, y un checkbox, hasta hay sin problema. Lo que no funcionan son unos objetos que puedo mover. Sin embargo, si ejecuta esta escena normal no hay problema

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 08:33 pm
Postea el código del SWF que lees con el que mueves a los objetos.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Sep 2008 08:58 pm
muy sencillo :

on (press)
{
startDrag("/atun2");
}

on (release)
{

stopDrag();
}

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 09:19 pm
En AS1 con "/" te refieres a _root, lo que pasa es que al leer el archivo con MovieClipLoader, _root se refiere a la raiz del SWF lector y no a la del que es leido, solo añade esta línea en el primer frame de la película que es leída:

Código ActionScript :

this._lockroot = true;


Esto hará que cuando te refieras a _root, te refieras a la raiz del archivo mismo aunque este sea leído en otro SWF.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Sep 2008 09:53 pm
Ahora me funciona el startDrag, pero el stop no, y esto no se puede hacer no??

stopDrag("/atun2");

como puedo hacer para k me funcione el stop?

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 10:21 pm
Como lo tenias puesto:

Código ActionScript :

stopDrag();


El stopDrag() no hay que especificarle el movieClip, el solamente dejará de arrastrar lo que esté arrastrando.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Sep 2008 10:23 pm
entonces no se a que se puede deber el problema, ya que si ejecuto esa escena sola todo funciona a la perfecion, pero de esa manera no. Buneo un millon de gracias , voy haber si consigo resolver el enigma, si es asi te aviso, jeje. Un saludo

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Sep 2008 11:06 pm
Hola, disculpa que te moleste otra vez, quiza el problema esta en la parte del codigo que no te adjunto, igualmente como me dijiste estoy utilizando esto en el primer fotograma: this._lockroot=true;

este es el codigo.
"7trozo_piña_clip2", "/p_izq" ... todos estos son movieclip.


on (press)
{ startDrag("/trozo_piña_clip2"); }

on (release)
{
if (getProperty("/trozo_piña_clip2", _droptarget) eq "/p_izq")
{
tellTarget ("/nota_piña_izquierda")
{
gotoAndStop(2);
}
}

else if (getProperty("/trozo_piña_clip2", _droptarget) eq "/p_derech")
{
tellTarget ("/nota_piña_derecha")
{
gotoAndStop(2);
}
}

else
{
if (getProperty("/trozo_piña_clip", _droptarget) eq "/p_derech")
{
tellTarget ("/nota_piña_derecha")
{
gotoAndStop(2);
}
tellTarget ("/nota_piña_izquierda")
{
gotoAndStop(1);
}
}
else if (getProperty("/trozo_piña_clip", _droptarget) eq "/p_izq")
{
tellTarget ("/nota_piña_izquierda")
{
gotoAndStop(2);
}
tellTarget ("/nota_piña_derecha")
{
gotoAndStop(1);
}
}
else
{
tellTarget ("/nota_piña_izquierda")
{
gotoAndStop(1);
}
tellTarget ("/nota_piña_derecha")
{
gotoAndStop(1);
}
}
setProperty("/trozo_piña_clip2", _x, "520");
setProperty("/trozo_piña_clip2", _y, "510");
}
stopDrag();
}

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Sep 2008 10:08 am
Dale formato a tus codigos, sino es muy difícil leerlos:

Código :

[as]
Insertas los codigos aquí para que tengan formato
[/as]


Evita las "ñ" en el código, y volviendo a tu problema, dónde tienes situado el código que has posteado? Ecima de qué movieClip? y que deseas que haga este clip?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 02 Sep 2008 10:25 am
dentro del moviclip tengo un boton y en este boton es donde coloco ese codigo.
para que te situes mejor:
- son varios movieclip con botones dentro (son alimentos, champiñones, fruta...)
- despues hay 2 movieclip (los que ves en el codigo p_derch y p_izq)

digamos que los alimentos los puedo mover si los suelto dentro de la pizza1 (p_derch) o pizza2 (p_izq) se mantendran aí, si los suelto fuera vuelven a su situacion principal.

Por santanap

14 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Sep 2008 03:12 pm
Si lo que deseas hacer es solo lo que describes, es muy complicado tener movies con botones dentro y cada uno con líneas de código, todo esto lo puedes resolver con menos trabajo.

Por ejemplo imagina que tengas en tu escena 4 movies, con nombres de instancia "champ" y "fruta" que son los que vas a arrastrar y tienes otros dos "p_der" y "p_izq" que son donde vas a soltar, solamente sitúa este código en el frame donde se encuentran los movies y hará todo lo que deseas.

En caso de que sean más movies a arrastrar, solo añade el nombre de estos en el arreglo "fruits" y no tendrás que cambiar más nada en el código te seguirá funcionando, si deseas añadir más movies donde soltar los primeros, solamente añade su nombre en el arreglo "pizzas".

Código ActionScript :

//---Movies a arrastrar
var fruits:Array = new Array("champ", "fruta");

//---Donde vas a soltar los movies
var pizzas:Array = new Array("p_der", "p_izq");

//---Acciones de los movies
for(var i:Number = 0; i < fruits.length; i++){
   
   //---Guardar posiciones iniciales
   this[fruits[i]].posX = this[fruits[i]]._x;
   this[fruits[i]].posY = this[fruits[i]]._y;
   
   //---Cuando se presione
   this[fruits[i]].onPress = function():Void{
      
      this.swapDepths(this._parent.getNextHighestDepth());
      this.startDrag();
      
   }
   
   //---Cuando se suelte
   this[fruits[i]].onRelease = function():Void{
      
      stopDrag();
      
      var drop:String = this._droptarget;
      var movieName:String = drop.slice(1, drop.length);
      
      if(pizzas.indexOf(movieName) >= 0){
         
         this._x = this._parent[movieName]._x;
         this._y = this._parent[movieName]._y;
         
      }else{
         
         this._x = this.posX;
         this._y = this.posY;
         
      }
      
   }
   
}

//---Prototype de indexOf 
Array.prototype.indexOf = function(search):Number  {
   var total:Number = this.length;
   var index:Number = -1;
   var item:Number = 0;
   var finded:Boolean = false;

   while (item<total && !finded) {
      if (this[item] == search) {
         index = item;
         finded = true;
      } else {
         item++;
      }
   }
   return index;
};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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