Comunidad de diseño web y desarrollo en internet online

Cargar pelicula dentro de otra con AS3

Citar            
MensajeEscrito el 02 Abr 2010 07:21 am
Amigos tengo una duda que espero puedan echarme un cable...

Resulta que en este sitio coloqué un menú prefabricado pero no logro dar con mi propósito.

Si ustedes dan click en cualquiera de los botones (que en realidad son instancias de uno solo), los llevará a google (solo para ejemplificar).

Yo en realidad lo que busco es que en el espacio inferior sobrante de mi página inicial se cargue una película a la vez dependiendo del botón que oprima.

Pero no he logrado nada mas que abrir una URL en otra ventana aparte... esto no me sirve, ya que yo quiero que las películas carguen en esta misma ventana.

Sé que sueno un poco enredado pero la verdad tengo muchas ganas de aprender y de resolver mis dudas, saludos y buen dia.

Les dejo el actionscript empleado... ¿me pueden decir que hago mal?


Código :

   butn.hit.buttonMode = true;
   butn.hit.addEventListener(MouseEvent.ROLL_OVER, butnOver);
   butn.hit.addEventListener(MouseEvent.CLICK, butnClick);
   addChild(butn);
}
function butnClick(event:MouseEvent):void{
var theURL:URLRequest = new URLRequest("http://www.google.com");
navigateToURL(theURL);
}


Yo quiero algo así como:

Código :

   butn.hit.buttonMode = true;
   butn.hit.addEventListener(MouseEvent.ROLL_OVER, butnOver);
   butn.hit.addEventListener(MouseEvent.CLICK, butnClick);
   addChild(butn);
}
function butnClick(event:MouseEvent):void{
var theURL:URLRequest = new URLRequest(["mi_primer_enlace.swf");
navigateToURL(theURL);
}


Muchas gracias de antemano a tod@s los que puedan echarme una manito.

Por escribanto

33 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Abr 2010 08:41 am
Una disculpa he olvidado el enlace de la página que menciono:
Mexico Grafico

Por escribanto

33 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Abr 2010 03:20 pm
navigateToURL, recibe como 2° argumento un string window si le pones "_self" deberia abrir en la misma pagina , solo que tu swf debera estar dado de alta para que corra de manera local , o si no quieres hacer eso pruebalo en el localhost.

Código ActionScript :

var request:URLRequest = new URLRequest("http://google.com");
navigateToURL(request , "_self");


Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 02 Abr 2010 09:40 pm
:D Lo pruebo ahora mismo, gracias por tu atenta respuesta.

Por escribanto

33 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Abr 2010 10:12 pm
Bueno pues lo he probado, ahora me abre en la misma ventana pero me desaparece el menú porque se queda solamente lo que abrió... yo lo que quiero es que el SWF se cargue en la parte inferior del menú.

En AS2 lograba esto con:

Código :

on (release) {
   loadMovieNum ("home.swf", 1)
}


Pero claro está que ese comando ya no es válido para AS3, además cabe mencionar que los botones son creados con:

Código :

var myButtons:Array = new Array("NUESTRO SITIO", "NUESTRA FILOSOFIA", "CALIDAD E HIGIENE", "NUESTROS SERVICIOS", "NUESTRA FLOTILLA", "FORMULARIO DE CONTACTO");


Y que no importando a cual le doy click, cualquiera de ellos me lleva a "home.swf".

¿Me puedes orientar que hago mal?

Aquí está mi resultado

Por escribanto

33 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Abr 2010 10:47 pm
creo que ya te entiendo , lo que quieres es cargar un SWF "children(hijo)" dentro de otro SWF "Main(principal)", eso es algo que ya se ha explicado mucho , recuerda la carga del swf externo seria sobre otro, tambien puedes usar el navigateToURL y cargar ya paginas html con el swf embedido, pero no me parece tan prolijo, suerte

Jonathan.
..remember running, all you'll gonna do is smoke chronic.. :music:

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 03 Abr 2010 02:35 am
:oops: He logrado cargar mi SWF inicial "hijo" dentro del SWF índice-menú "padre".

Pero la cuestión es que ahora quiero saber como asigno a los demás botones la misma función, para que cada uno cargue su SWF "hijo" correspondiente y así mismo se descargue el que estaba cargado previamente.

Mi código empleado en este instante es:

Código :

function butnClick(event:MouseEvent):void{
var urlRequest:URLRequest = new URLRequest("home.swf");
var urlLoader:Loader = new Loader();
urlLoader.load (urlRequest);
stage.addChild (urlLoader);
}


Pero aparte de "home.swf" tengo otros 5 SWF mas, lo raro es que no logro visualizar el clip de película "menuClip.swf" en mi escenario de trabajo, ya que es creado desde cero con AS.

Por tanto no sé como asignarle nombres a cada instancia de los botones, sé que dependiendo de los arrays:

Código :

var myButtons:Array = new Array("NUESTRO SITIO", "NUESTRA FILOSOFIA", etc...);


Es como se van creando mis botones, así mismo el número de ellos... ¿pero como diferenciarlos?

Por escribanto

33 de clabLevel



 

opera
Citar            
MensajeEscrito el 03 Abr 2010 03:17 am
me imagino que creas tantos botones como el length del array , tu movieclip que hace de boton debe estar exportado para AS3 con algun nombre de clase , al ser MovieClip una clase abierta , ha medida que iteras, crea una propiedad del tipo String que contenga la URL de su contenido a cargar , esto seria mas elegante si usaras un XML , pero en fin te pongo un ejemplo de ha que me refiero :

Código ActionScript :

var labels:Array = new Array("Home","About","Services","Contact");

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);

//CustomButton es el nombre de la clase del boton exportado
var btn:CustomButton;

function buildMenu():void
{
   for (var i:uint=0; i<labels.length; i++) {
      btn = new CustomButton();
      /*
      creo una propiedad llamada targetURL : en este caso los swfs tienen mismo nombre 
      que el label solo que en minusculas por eso use toLoweCase() para que me convierte
      todo a minusculas y le concateno la extencion .swf
      */
      btn.targetURL = labels[i].toLowerCase() + ".swf";
      btn.tLabel.text = labels[i];
      btn.y = 40;
      btn.x = (btn.width + 5) * i;
      btn.addEventListener(MouseEvent.CLICK, clickHandler);
      addChild(btn);
   }
}


function clickHandler(e:MouseEvent):void
{
   /*para que el compilador no genere error le indico que el currentTarget es mas que un
   displayObject , en este caso no seria tan necesario ya que es una propiedad y no un metodo
   al cual quiero acceder , pero por buena practica se hace el cast*/
   var tmpTarget:CustomButton = e.currentTarget as CustomButton;
   trace(tmpTarget.targetURL); //output : home.swf , about.swf...etc
   //le pasamos la URL al objeto Request y este a su ves al metodo load() del Loader
   loader.load(new URLRequest(tmpTarget.targetURL));
}

function completeHandler(e:Event):void
{
   //...........
}

buildMenu(); //construimos el menu


hay muchas formas de hacer eso , te recomendaria uses un doc XML y ahi le declaras todo tipo de propiedades Label ,URL ,posX,Y etc. Suerte

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 05 Abr 2010 03:45 am
Al final me he decidido a no meterme por el momento con el AS3... gracias por tu ayuda de cualquier manera.

La verdad es que me compliqué con tu última respuesta... porque no entendí el ejemplo que me pusiste y me enredé mas... voy a hacer mi web con lo poco que sé de AS y algunas cosas de Motion Tween y eso.

Quise correr cuando aun gateo...

Saludos y suerte... :oops:

P.D.: "Soy Diseñador Gráfico de Profesión y AUN lo de PROGRAMAR no se me dá... quizás más adelante y con más tiempo."

Por escribanto

33 de clabLevel



 

opera

 

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