Comunidad de diseño web y desarrollo en internet online

removeChild en código Pano2VR

Citar            
MensajeEscrito el 17 Jun 2011 08:09 am
Hola a todos, les comento mi problema, tengo que meter 5 panoramas diferentes dentro de un *.fla, cada panorama tiene su botón, piso1, piso2, etc... Soy nuevo en el código 3.0 pero tengo que hacerlo con esto ya que los panoramas vienen así (con 3.0); el código para cargar el pano viene de aqui: http://gardengnomesoftware.com/wiki/Pano2VR_-_Flash_API

Viendo tutoriales y aquí en el foro, vi que algunos resolvían poniendo las funciones con diferente nombre en cada frame , eso me funciona a medias (luego de cargar piso 1 pasar al piso 3 y luego al 1 se enciman) pero se que no es la manera correcta de hacerlo :?

Como puedo agregarle a esto un Loop para que reutilice las funciones y además pueda eliminarlas cuando otra se cargue, no se si me hago entender, espero me puedan ayudar :)

El código de los botones es este:

Código ActionScript :

inicio_btn.addEventListener(MouseEvent.CLICK, inicio);
floor1_btn.addEventListener(MouseEvent.CLICK, piso1);
floor2_btn.addEventListener(MouseEvent.CLICK, piso2);
floor3_btn.addEventListener(MouseEvent.CLICK, piso3);
floor4_btn.addEventListener(MouseEvent.CLICK, piso4);
fullPano_btn.addEventListener(MouseEvent.CLICK, pisoCompleto);

function inicio(event:MouseEvent):void {
   gotoAndPlay("index")
}

function piso1(event:MouseEvent):void {
   gotoAndStop("floor1")
}

function piso2(event:MouseEvent):void {
   gotoAndPlay("floor2")
}

function piso3(event:MouseEvent):void {
   gotoAndPlay("floor3")
}

function piso4(event:MouseEvent):void {
   gotoAndPlay("floor4")
}

function pisoCompleto(event:MouseEvent):void {
   gotoAndPlay("completo")
}


Y el código para cargar el pano es este:

Código ActionScript :

stop();

fullPano_btn.mouseEnabled = true;
floor1_btn.mouseEnabled = false;
floor2_btn.mouseEnabled = true;
floor3_btn.mouseEnabled = true;
floor4_btn.mouseEnabled = true;

import flash.display.*;
import flash.net.URLRequest;
import flash.events.Event;
 
var loader:Loader = new Loader();
var url:String = "terraza_1_out.swf";
var urlReq:URLRequest = new URLRequest(url);
var vr:MovieClip;

function finished_loading (e:Event) {
}
 
function initHandler(event:Event):void {
   trace("initHandler: " + event);
   vr = MovieClip(loader.content); 
}
 
function initPanorama(e:Event) {
   if ((vr!=null) && (vr.pano!=null)) {
      removeEventListener( Event.ENTER_FRAME , initPanorama);
      vr.x=40;
      vr.y=150;
      vr.pano.setWindowSize(720,420);
   }
}
addEventListener( Event.ENTER_FRAME , initPanorama);
 
loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, finished_loading);
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
loader.load(urlReq);
addChild(loader);

Por Willis

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Jun 2011 06:27 pm
El problema era que no podia cargar los SWF dentro de un MC y luego quitarlos para cargarlos de nuevo; consegui resolverlo, por si alguien se interesa mi resultado fue esto:

Código ActionScript :

import flash.display.*;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;

var loader:Loader = new Loader();
var url:String = "";
var urlReq:URLRequest = new URLRequest(url);
var vr:MovieClip;

function finished_loading(e:Event){
}

function initHandler(event:Event):void{
   trace("initHandler: " + event);
   vr = MovieClip(loader.content);
   vr.x = 40;
   vr.y = 150;
}

function initPanorama(e:Event){
   if ((vr!=null) && (vr.pano!=null))
   {
      removeEventListener( Event.ENTER_FRAME , initPanorama);
      /*vr.x = 40;
      vr.y = 150;*/
      vr.pano.setWindowSize(720,420);
   }
}
addEventListener( Event.ENTER_FRAME , initPanorama);

loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, finished_loading);
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
addChild(loader);

function loadPano(evt:MouseEvent):void{
   switch (evt.currentTarget.name)
   {
      case "btn1" :
         urlReq.url = "pano_out.swf";
         break;
      case "btn2" :
         urlReq.url = "pano2_out.swf";
         break;
      case "btn3" :
         urlReq.url = "pano3_out.swf";
         break;
      case "btn4" :
         urlReq.url = "pano4_out.swf";
         break;
      case "btn5" :
         urlReq.url = "pano5_out.swf";
         break;
   }
   loader.load(urlReq);
}

inicio_btn.addEventListener(MouseEvent.CLICK, cleanPano);
btn1.addEventListener(MouseEvent.CLICK, loadPano);
btn2.addEventListener(MouseEvent.CLICK, loadPano);
btn3.addEventListener(MouseEvent.CLICK, loadPano);
btn4.addEventListener(MouseEvent.CLICK, loadPano);
btn5.addEventListener(MouseEvent.CLICK, loadPano);

function cleanPano(evt:MouseEvent) :void {
   loader.unload();
   gotoAndPlay ("index");
}


Saludos :shock:

Por Willis

1 de clabLevel



Genero:Masculino  

firefox

 

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