Comunidad de diseño web y desarrollo en internet online

cargar swf dentro de otro swf

Citar            
MensajeEscrito el 12 May 2009 07:57 pm
aludos :D

buenas soy nueva tanto en el foro como en el manejo de codigos en el diseño de paginas web

les tengo una dudita un tanto sosa pero espero me puedan ayudar

use el tutorial de http://foros.cristalab.com/snippet-as2-slideshow-transicion-xml-t68908/ para hacer varias slideshow para una pagina web que expondra el portafolio de una empresa.

ya teniendo los swf con xml a las imagenes funcionando solo faltaria ubicarlos dentro de la pelicula principal.

la situacion es que quiero que cada swf secundario trabaje normalmente en una ubicacion especifica del flash principal, el archivo principal esta en actionscript 3.0 y los swf estan en 2.0

alguien sabe como cargo los swf y los coloco en un punto exato del plano?

muchas gracias por sus ayudas :D :shock:

Por Neilye

31 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 12 May 2009 09:48 pm

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 12 May 2009 10:22 pm
el archivo principal es actionscript 3.0 :S

basicamente necesito que un flash trabajado en actionscript 3.0 me cargue swf externos. que estan trabajando con actionscript 2.0 aparte de eso queden en una ubicacion especifica y no me cargen en una esquina.

http://foros.cristalab.com/cargar-swf-externo-con-as3-t58620/
esta fue la ayuda mas cercana que encontre, lo unico malo fueron los 2 problemas que me genero

1 el slideshow no se mueve, no muestra la animacion ni nada solo la ultima imagen de la lista xml
2 me coloca el swf pegado de la esquina y lo necesito en una ubicacion especifica.

Por Neilye

31 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 13 May 2009 08:30 pm
Bueno el segundo código de este post se refiere a cargar un movie en AS2 (fíjate en los comentarios que dejé)

http://foros.cristalab.com/problema-con-carga-de-swf-t57754/#388396

Si quisieras posicionar el objeto loader que carga al SWF externo sólo debes cambiar sus coordenadas después de crearlo:

Código ActionScript :

//---Posicionaré el loader en las coordenadas 100, 200
var carga:Loader = new Loader();
carga.x = 100;
carga.y = 200;


Ya el problema de que no carga las cosas deberías postear parte del código y donde tienes situado cada uno de tus archivos con respecto a los otros en el disco duro.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 May 2009 11:16 pm
valla muchas gracias :D si se cuadro donde queria el swf ahora el problema es que aun sigo con el primer problema :(, el swf esta inanimado y muestra la ultima imagen de la secuencia swf

el codigo que tengo en las secuencias es este:

Código :

import mx.transitions.Tween; 
import mx.transitions.easing.*; 
 
//-- Variables iniciales --// 
var frames:Number = 80;//Numero de frames que se vera cada diapositiva 
var sld_x:Number = 0.0;//Posicion en X del Slide 
var sld_y:Number = 0.0;//Posicion en Y del Slide 
var sld_w:Number = Stage.width - 0;//Ancho del Slide 
var sld_h:Number = Stage.height - 0;// Alto del Slide 
var sld_mask:Boolean = true;// Alto del Slide 
var aleatorio:Boolean = false;//Indica si es aleatorio 
var ciclico:Boolean = true;//Indica si se tiene repite al llegar al final 
var transicion:String = "fade";//Tipos de transicion 
/** transicion 
*  
* arriba .- movimiento hacia arriba 
* abajo .- movimiento hacia abajo 
* izquierda .- movimiento haca la izquierda 
* derecha .- movimiento hacia la derecha 
* zoomv .- amplificado verticalmente 
* zoomh .- amplificado horizontalmente 
* zoom .- amplificado 
* fade .- desvanecido 
* none .- nunguna animacion 
*  
**/ 
var movimiento:String = "normal";//Tipos de movimiento 
/** movimiento 
*  
* retroceso 
* rebote  
* elastico 
* remarcado 
* normal 
*  
**/ 
 
//-- Varialbles internas --// 
//  cargoDiapositivas .- array de los MCs que contendran las diapositivas 
var cargoDiapositivas:Array; 
//  index .- indica la diapositiva actual 
var index:Number = -1; 
//  loading .- indica el numero de recusos cargados 
var loading:Number = 0; 
//  cargador .- se usara para cargar las diapositivas 
var cargador:MovieClipLoader = new MovieClipLoader(); 
cargador.addListener(this); 
//  slideshow .- MC que contendra todo el slideshow 
var slideshow:MovieClip; 
 
 
//-- Diapositivas a cargar --// 
var misDiapositivas:Array = new Array(); 
var lista_xml:XML = new XML(); 
lista_xml.ignoreWhite = true; 
lista_xml.onLoad = function( ok:Boolean ):Void 
{   
   if( ok )//Si se cargo correctamente   
   { 
      var aux:XMLNode; 
      for(var j in lista_xml.firstChild.childNodes) 
      { 
         switch( lista_xml.firstChild.childNodes[j].nodeName ) 
         { 
            case "transicion": 
               transicion = lista_xml.firstChild.childNodes[j].firstChild.nodeValue; 
            break; 
            case "movimiento": 
               movimiento = lista_xml.firstChild.childNodes[j].firstChild.nodeValue; 
            break; 
            case "diapositivas": 
               aux = lista_xml.firstChild.childNodes[j]; 
            break; 
         } 
      } 
      for( var i:Number = 0, l:Number = aux.childNodes.length; i < l; i++ ) 
      { 
         misDiapositivas.push(aux.childNodes[i].firstChild.nodeValue); 
      }       
      cargarDiapositivas(); 
   } 
   else trace("No se pudo cargar el XML");   
}; 
lista_xml.load("./xml/flash.xml"); 
 
 
//-- Clips de trabajo y Carga --// 
function cargarDiapositivas( Void ):Void 
{ 
   this.slideshow = this.createEmptyMovieClip( "slideshow" , this.getNextHighestDepth() ); 
   //Creamos el clip que contendra los limites del slideshow 
   this.slideshow.createEmptyMovieClip("bound_mc", 0); 
   this.setArea( this.slideshow.bound_mc, this.sld_w, this.sld_h ); 
   //Enmascaramos el slideshow 
   this.slideshow.setMask( this.sld_mask ? this.slideshow.bound_mc : null ); 
   //Posicionamos 
   this.slideshow._x = this.sld_x; 
   this.slideshow._y = this.sld_y; 
   //Variables inciales 
   this.slideshow.owner = this; 
   this.slideshow.count = this.frames; 
   this.cargoDiapositivas = new Array(); 
   for (var i:Number = 0, l:Number = this.misDiapositivas.length; i < l; i++) 
   { 
      //creamos un MC dentro de slideshow y lo colocamos en el array 
      this.cargoDiapositivas[i] = this.slideshow.createEmptyMovieClip( "slide_" + i , i + 1); 
      //creamos un MC dentro del MC previamente creado, en el cargamos la diapositiva 
      this.cargador.loadClip(this.misDiapositivas[i], this.cargoDiapositivas[i].createEmptyMovieClip("clip", 0)); 
   } 
   //Creamos un TextField para mostrar mensajes 
   this.slideshow.createTextField("texto_txt", this.slideshow.getNextHighestDepth(), this.sld_w / 2 - 100, this.sld_h - 22, 200, 22); 
   //Le damos formato al texto 
   var format:TextFormat = new TextFormat(); 
   format.align = "center" 
   format.bold = true; 
   format.font = "Arial"; 
   format.color = 0x888888; 
   format.size = 11; 
   this.slideshow.texto_txt.setNewTextFormat( format ); 
   this.slideshow.texto_txt.selectable = false; 
   //Colocamos el mensaje de carga 
   this.slideshow.texto_txt.text = "Cargando...";    
} 
//Funcion que se ejecutara cuando esten cargados todos las diapositivas 
function startSlideShow( Void ):Void 
{ 
   //Inicia el slideshow 
   slideshow.onEnterFrame = function( Void ):Void 
   { 
      //Evaluamos si han transcurrido los frames indicados 
      if ( this.count >= this.owner.frames )  
      { 
         //Si es asi, ejecutamos la funcion "cambiar" 
         this.count = 0; 
         this.owner.cambiar(); 
      } 
      else this.count++; 
   } 
} 
 
//-- Eventos del MovieClipLoader --// 
function onLoadInit( target:MovieClip ):Void 
{ 
   //Hacemos invisible 
   target._parent._visible = false; 
   //Centramos 
   target._parent._x = target._parent._parent.bound_mc._width /  2; 
   target._parent._y = target._parent._parent.bound_mc._height /  2; 
   target._x = target._width / -2; 
   target._y = target._height / -2; 
   //Si ya se cargo todo, podemos inciar 
   if( (++loading) >= cargoDiapositivas.length )    
   { 
      startSlideShow(); 
   } 
} 
 
//-- cambiar --// 
function cambiar( Void ):Void  
{ 
   if( aleatorio )//Si es aleatorio 
   { 
      //Generamos un numero aleatorio 
      var randome = rand( cargoDiapositivas.length, index ); 
      //Aplicamos la transicion 
      interpolar( cargoDiapositivas[index], cargoDiapositivas[randome] ); 
      //Actualizamos el index 
      index = randome; 
   } 
   else 
   { 
      //Creamos una variable la igualamos con el index y luego incrementamos el index 
      var actual = index++;       
      if( index >= cargoDiapositivas.length )//Si llegamos al final 
      { 
         if( ciclico )//Si es ciclico 
         { 
            index = 0;//regrsamos el index al incio 
         } 
         else//Si no 
         { 
            delete slideshow.onEnterFrame;//Detenemos el slideshow 
         } 
      } 
      //Aplicamos la transicion 
      interpolar( cargoDiapositivas[ actual ], cargoDiapositivas[ index ] ); 
   } 
   //Trace 
   this.slideshow.texto_txt.text = (index + 1) +" de "+ cargoDiapositivas.length; 
} 
 
//-- Efectos --// 
function interpolar( ini:MovieClip, fin:MovieClip):Void  
{ 
   //Colocamos a "fin" en el nivel mas alto 
   fin.swapDepths(cargoDiapositivas.length); 
   //  ease .- variable que contiene la funcion de movimiento 
   var ease:Function = StringToEasing( movimiento ); 
   //Elegimos la transicion 
   switch(transicion) 
   { 
      case "arriba":  
         CambioArr( ini, fin, ease ); 
      break; 
      case "abajo":  
         CambioAbj( ini, fin, ease ); 
      break; 
      case "izquierda":  
         CambioIzq( ini, fin, ease ); 
      break; 
      case "derecha":  
         CambioDer( ini, fin, ease ); 
      break; 
      case "zoomv":  
         CambioZoomH( ini, fin, ease ); 
      break; 
      case "zoomh":  
         CambioZoomV( ini, fin, ease ); 
      break; 
      case "zoom":  
         CambioZoom( ini, fin, ease ); 
      break; 
      case "fade":  
         CambioFade( ini, fin, ease ); 
      break; 
      //Si no hay ninguna transicion 
      case "none": default: 
         fin._visible = true; 
         ini._visible = false; 
      break; 
   } 
} 
//desvanecimiento 
function CambioFade( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_alpha", ease, 0, 100, 5, true); 
   var aux:Tween = new Tween(ini, "_alpha", ease, 100, 0, 5, true); 
   //Al finalizar la Tween 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
//ampliacion 
function CambioZoom( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_xscale", ease, 0, 100, 1.5, true); 
   new Tween(fin, "_yscale", ease, 0, 100, 1.5, true); 
   new Tween(ini, "_xscale", ease, 100, 0, 1.5, true); 
   var aux:Tween = new Tween(ini, "_yscale", ease, 100, 0, 1.5, true); 
   //Al finalizar la Tween 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
//ampliacion horizontal 
function CambioZoomH( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_yscale", ease, 0, 100, 1.5, true); 
   var aux:Tween = new Tween(ini, "_yscale", ease, 100, 0, 1.5, true); 
   //Al finalizar la Tween 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
function CambioZoomV( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_xscale", ease, 0, 100, 1.5, true); 
   var aux:Tween = new Tween(ini, "_xscale", ease, 100, 0, 1.5, true); 
   //Al finalizar la Tween 
 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
function CambioDer( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_x", ease, fin._width / -2, fin._parent.bound_mc._width / 2, 1.5, true); 
   var aux:Tween = new Tween(ini, "_x", ease, ini._parent.bound_mc._width / 2, ini._parent.bound_mc._width + (ini._width / 2), 1.5, true); 
   //Al finalizar la Tween 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
function CambioIzq( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_x", ease, fin._parent.bound_mc._width + (fin._width / 2), fin._parent.bound_mc._width / 2, 1.5, true); 
   var aux:Tween = new Tween(ini, "_x", ease, ini._parent.bound_mc._width / 2, ini._width / -2, 1.5, true); 
   //Al finalizar la Tween 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
function CambioArr( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_y", ease, fin._parent.bound_mc._height + (fin._height / 2), fin._parent.bound_mc._height / 2, 1.5, true); 
   var aux:Tween = new Tween(ini, "_y", ease, ini._parent.bound_mc._height / 2, ini._height / -2, 1.5, true); 
   //Al finalizar la Tween 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
function CambioAbj( ini:MovieClip, fin:MovieClip, ease:Function ):Void  
{ 
   //Hacemos visibles los clips 
   fin._visible = ini._visible = true; 
   //Generamos las Tween 
   new Tween(fin, "_y", ease, fin._height / -2, fin._parent.bound_mc._height / 2, 1.5, true); 
   var aux:Tween = new Tween(ini, "_y", ease, ini._parent.bound_mc._height / 2, ini._parent.bound_mc._height + (ini._height / 2), 1.5, true); 
   //Al finalizar la Tween 
   aux.onMotionFinished = function( o ) 
   { 
      //Colocamos invisible el movieclip ini 
      o.obj._visible = false; 
   } 
} 
 
//-- Utilerias --// 
//Genera numeros aleatorios de 0 a sup, excluye a norep 
function rand( sup:Number, norep:Number ):Number 
{ 
   norep = ( norep == undefined ) ? -1 : norep; 
   var aux:Number; 
   do 
   { 
      aux = Math.floor(Math.random() * sup); 
   } 
   while( aux == norep && sup > 1); 
   return aux; 
} 
//Dibuja un cuadrado en clip, de ancho w y alto h 
function setArea( clip:MovieClip, w:Number, h:Number, color:Number, alpha:Number ):Void 
{ 
   //Dibujamos un cuadrado 
   clip.clear(); 
   clip.beginFill( color?color:0, alpha?alpha:0 ); 
   clip.moveTo( 0, 0 ); 
   clip.lineTo( w, 0 ); 
   clip.lineTo( w, h ); 
   clip.lineTo( 0, h ); 
   clip.endFill();    
} 
//toma una cadena "aceleracion" y regresa una funcion de easing 
function StringToEasing( aceleracion:String ):Function 
{ 
   switch( aceleracion ) 
   { 
      case "retroceso": 
         return Back.easeOut; 
      break; 
      case "rebote": 
         return Bounce.easeOut; 
      break; 
      case "elastico": 
         return Elastic.easeOut; 
      break; 
      case "remarcado": 
         return Strong.easeOut; 
      break; 
      case "normal": default: 
         return Regular.easeOut; 
      break; 
   } 
} 


el swf solamente tiene 1 fotograma con este codigo, mas un xml que hacen el resto de trabajos, no hay forma de ue este swf se anime y haga lo suyo mientras el swf principal se mantenga sobre un solo fotograma?

Por Neilye

31 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 13 May 2009 11:38 pm
Si estás trabajando con AS3, no te sería más fácil usar una clase de slideShow en el mismo lenguaje, así evitarías problemas. De esta manera no tendrías que leer un SWF externo, sino que crearías una instancia nueva de la clase en la escena.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 14 May 2009 01:24 am
woooooow perfecto!!! justo eso iba a hacer :D :D :D :D mañana cuando este en la oficina lo ensayo a ver n.n

igual muchisimas gracias :D

:D :D :D

Por Neilye

31 de clabLevel



Genero:Femenino  

firefox

 

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