Foros del Web » Creando para Internet » Flash y Actionscript »

Problemas al crear galeria interactiva

Estas en el tema de Problemas al crear galeria interactiva en el foro de Flash y Actionscript en Foros del Web. Buenas, Tenía en AS2 un codigo para recrear galerias, y poder pasear a traves de las imagenes, estoy intentando pasarlo a AS3, y no he ...
  #1 (permalink)  
Antiguo 30/06/2010, 17:35
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 0
Problemas al crear galeria interactiva

Buenas,

Tenía en AS2 un codigo para recrear galerias, y poder pasear a traves de las imagenes, estoy intentando pasarlo a AS3, y no he logrado hacerlo funcionar. me compila pero no me funciona. En AS2 me funcionaba perfectamente, pero al empezar a pasarlo a AS3, me estoy liando al no poder crear objetos directamente.

SCENE3D es un movieclip que contiene otros moviclips llamados Object+Num.
escenario lo he creado para poder llamar a la funcion pero creo que eso ha sido un desvario de estas horas.



Podríais echar un ojo a ver si veis el fallo ?


function galeria(event:Event) {

//creamos un objeto viewer
var viewer:Object = new Object();
viewer.z=0;
viewer.x=0;
viewer.y=0;

// parametros de la camara "viewer"
var d:Number = 150; // distancia del observador al plano 2d
var viewerSpeed:Number = 10; // velocidad del viewer
var tooClose:Number = 100; // cuando es demasiado cerca

// crear dibujo plano: una movie clip scene3D
// y la posicion en medio además de otro para incluirlo
var escena:Scene3D = new Scene3D();
escena.x = stage.width/2;
escena.y = stage.height/2;
plano.addChild(escena);
// numero objetos
var numberOfObjects:Number = 9;

// definicion de los arrays de cordenadas
var xdata:Array = new Array();
var ydata:Array = new Array();
var zdata:Array = new Array();
var thisObj:Object = new Object();

xdata = []; ydata = []; zdata = [];

xdata = [ -1000, -500, 0, 500, 1000,
-1000, -500, 0, 500, 1000,
-1000, -500, 0, 500, 1000 ]

ydata = [ 100, 100, 100, 100, 100,
100, 100, 100, 100, 100,
100, 100, 100, 100, 100 ]

zdata = [ 600, 601, 602, 603, 604,
900, 901, 902, 903, 904,
1200, 1201, 1202, 1203, 1204 ]

// añadimos los objetos
for (var i:Number = 1; i <= numberOfObjects; i++) {
escena["object"+i].loadMovie("sanJuan/"+i+".JPG");
thisObj = escena["object"+i];
placeObj();
}

// y los colocamos
function placeObj() {
thisObj.x = xdata[i-1];
thisObj.y = ydata[i-1];
thisObj.z = zdata[i-1];
}

// mostramos
function displayObj() {
// limites en la linez z
if (viewer.z < -1000 ) {
viewer.z = -1000
}
if (viewer.z > 900 ) {
viewer.z = 900
}

// limites linea x
if (viewer.x < -1200 ) {
viewer.x = -1200
}
if (viewer.x > 1800 ) {
viewer.x = 1800
}

// limites linea y
if (viewer.y < -700 ) { viewer.y = -700 }
if (viewer.y > 300 ) { viewer.y = 300 }

// calculamos posicion relativa del viewer
var tx:Number = thisObj.x - viewer.x; // tx,ty,tz son la
var ty:Number = thisObj.y - viewer.y; // coordenadas de los objetos
var tz:Number = thisObj.z - viewer.z; // relativas a la camara

// el radio de perspectiva
var pRatio:Number = d/tz;

// aplicamos el radio y escalamos
thisObj.x = tx * pRatio;
thisObj.y = -ty * pRatio; // need minus sign for Flash coords
thisObj.scaleX = thisObj._yscale = 100 * pRatio;

// poner capas delante
thisObj.swapDepths(Math.round(-thisObj.z));

// comprobacion demasiado cerca
if ( tz <= tooClose)
{ thisObj.visible = false; }
else thisObj.visible = true;
}

// creamos al viewer
addChild(plano)
plano.addEventListener(Event.ENTER_FRAME,crearGale ria);


function crearGaleria (){

// ponemos los datos de cordenadasdel ratn al viewer
viewer.x += (mouseX - escena.x)/viewerSpeed;
viewer.y += -(mouseY - escena.y)/viewerSpeed;

// teclas para el movimiento
var up:Boolean = false;
var down:Boolean = false;
var left:Boolean = false;
var right:Boolean = false;


stage.addEventListener(KeyboardEvent.KEY_DOWN,keyP ressHandler);
stage.addEventListener(KeyboardEvent.KEY_UP,keyRel easeHandler);



function keyPressHandler(event:KeyboardEvent):void
{
switch( event.keyCode )
{
case Keyboard.UP:
up = true;
break;

case Keyboard.DOWN:
down = true;
break;

case Keyboard.LEFT:
left = true;
break;

case Keyboard.RIGHT:
right = true;
break;
}
}

function keyReleaseHandler(event:KeyboardEvent):void
{
switch( event.keyCode )
{
case Keyboard.UP:
up = false;
break;

case Keyboard.DOWN:
down = false;
break;

case Keyboard.LEFT:
left = false;
break;

case Keyboard.RIGHT:
right = false;
break;
}
}
if (up == true) {
viewer.z += viewerSpeed;
}
else if (down == true) {
viewer.z -= viewerSpeed;
}

// Mostramos
for (i= 1; i <= numberOfObjects; i++)
{
thisObj = escena["object"+i];
placeObj();
displayObj();
}
}


}


Muchas gracias
  #2 (permalink)  
Antiguo 30/06/2010, 18:08
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problemas al crear galeria interactiva

Buenas ,

He arreglado un poco más el codigo y ahora me falla en la carga de imagenes, el error es :

TypeError: Error #1123: Operador de filtro no admitido en el tipo Scene3D.
at com.clases::Jessi/galeria()
Error #2044: IOErrorEvent no controlado: text=Error #2035: No se encuentra la dirección URL.



Código AS3:
Ver original
  1. function galeria(event:Event) {
  2.            
  3.             //creamos un objeto viewer
  4.         var viewer:Object = new Object();
  5.         viewer.z=0;
  6.         viewer.x=0;
  7.         viewer.y=0;
  8.                              
  9.         // parametros de la camara "viewer"
  10.         var d:Number = 150;          // distancia del observador al plano 2d
  11.         var viewerSpeed:Number = 10; // velocidad del viewer
  12.         var tooClose:Number = 100;   // cuando es demasiado cerca    
  13.  
  14.         // crear dibujo plano: una movie clip scene3D
  15.         // y la posicion en medio además de otro para incluirlo
  16.         var escena:Scene3D = new Scene3D();
  17.         escena.x = stage.width/2;
  18.         escena.y = stage.height/2;
  19.        
  20.        
  21.         // numero objetos
  22.         var numberOfObjects:Number = 9;
  23.  
  24.         // definicion de los arrays de cordenadas
  25.         var xdata:Array = new Array();
  26.         var ydata:Array = new Array();
  27.         var zdata:Array = new Array();
  28.         var thisObj:Object = new Object();
  29.        
  30.         xdata = []; ydata = []; zdata = [];
  31.  
  32.         xdata = [ -1000, -500, 0, 500, 1000,
  33.           -1000, -500, 0, 500, 1000,
  34.           -1000, -500, 0, 500, 1000 ]
  35.  
  36.         ydata = [ 100, 100, 100, 100, 100,
  37.           100, 100, 100, 100, 100,
  38.           100, 100, 100, 100, 100 ]
  39.  
  40.         zdata = [  600,  601,  602,  603, 604,
  41.            900,  901,  902,  903, 904,
  42.           1200, 1201, 1202, 1203, 1204 ]
  43.  
  44.         // añadimos los objetos
  45.         for (var i:Number = 1; i <= numberOfObjects; i++)   {
  46.            
  47.             var imagenURL:URLRequest = new URLRequest("sanJuan/"+i+".JPG");
  48.             var imagenLoader:Loader = new Loader();
  49.             imagenLoader.load(imagenURL);
  50.             escena.("object"+i).load(imagenLoader);
  51.             thisObj = escena.("object"+i);
  52.             placeObj();
  53.         }
  54.  
  55.         // y los colocamos
  56.             function placeObj() {
  57.                thisObj.x = xdata[i-1];
  58.                thisObj.y = ydata[i-1];
  59.                thisObj.z = zdata[i-1];
  60.             }
  61.  
  62.         // mostramos
  63.             function displayObj() {
  64.                 // limites en la linez z
  65.                 if (viewer.z < -1000 ) {
  66.                     viewer.z = -1000
  67.                 }
  68.                 if (viewer.z > 900 )   {
  69.                     viewer.z = 900
  70.                 }          
  71.  
  72.                 // limites  linea x
  73.                 if (viewer.x < -1200 ) {
  74.                     viewer.x = -1200
  75.                 }
  76.                 if (viewer.x > 1800 )  {
  77.                     viewer.x = 1800
  78.                 }
  79.    
  80.                 // limites linea y
  81.                 if (viewer.y < -700 ) { viewer.y = -700 }
  82.                 if (viewer.y >  300 ) { viewer.y =  300 }  
  83.    
  84.                 // calculamos posicion relativa del viewer
  85.                 var tx:Number = thisObj.x - viewer.x;  // tx,ty,tz son la  
  86.                 var ty:Number = thisObj.y - viewer.y;  // coordenadas de los objetos
  87.                 var tz:Number = thisObj.z - viewer.z;  // relativas a la camara
  88.    
  89.                 // el radio de perspectiva
  90.                 var pRatio:Number = d/tz;              
  91.    
  92.                 // aplicamos el radio y escalamos
  93.                 thisObj.x =  tx * pRatio;    
  94.                 thisObj.y = -ty * pRatio;  // need minus sign for Flash coords
  95.                 thisObj.scaleX = thisObj._yscale = 100 * pRatio;
  96.    
  97.                 // poner capas delante
  98.                 thisObj.swapDepths(Math.round(-thisObj.z));
  99.            
  100.                 // comprobacion demasiado cerca
  101.                 if ( tz <= tooClose)
  102.                 { thisObj.visible = false; }
  103.                 else thisObj.visible = true;
  104.                 }
  105.    
  106.                 // creamos al viewer
  107.                
  108.                 plano.addChild(escena)
  109.                 plano.escena.addEventListener(Event.ENTER_FRAME,crearGaleria);
  110.                
  111.                
  112.                 function crearGaleria (){
  113.                
  114.                 // ponemos los datos de cordenadasdel ratn al viewer  
  115.                 viewer.x +=  (mouseX - escena.x)/viewerSpeed;
  116.                 viewer.y += -(mouseY - escena.y)/viewerSpeed;
  117.  
  118.                 // teclas para el movimiento
  119.                  var up:Boolean = false;
  120.                  var down:Boolean = false;
  121.                  var left:Boolean = false;
  122.                  var right:Boolean = false;
  123.        
  124.                
  125.                     stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressHandler);
  126.                     stage.addEventListener(KeyboardEvent.KEY_UP,keyReleaseHandler);
  127.            
  128.                
  129.                
  130.                 function keyPressHandler(event:KeyboardEvent):void
  131.                 {
  132.                 switch( event.keyCode )
  133.                 {
  134.                 case Keyboard.UP:
  135.                     up = true;
  136.                     break;
  137.                    
  138.                 case Keyboard.DOWN:
  139.                     down = true;
  140.                     break;
  141.                    
  142.                 case Keyboard.LEFT:
  143.                     left = true;
  144.                     break;
  145.                    
  146.                 case Keyboard.RIGHT:
  147.                     right = true;
  148.                     break;
  149.             }
  150.         }
  151.        
  152.         function keyReleaseHandler(event:KeyboardEvent):void
  153.         {
  154.             switch( event.keyCode )
  155.             {
  156.                 case Keyboard.UP:
  157.                     up = false;
  158.                     break;
  159.                    
  160.                 case Keyboard.DOWN:
  161.                     down = false;
  162.                     break;
  163.                    
  164.                 case Keyboard.LEFT:
  165.                     left = false;
  166.                     break;
  167.                    
  168.                 case Keyboard.RIGHT:
  169.                     right = false;
  170.                     break;
  171.             }
  172.         }
  173.                 if (up == true)         {
  174.                     viewer.z += viewerSpeed;
  175.                     }
  176.                 else if (down == true)  {
  177.                     viewer.z -= viewerSpeed;
  178.                 }
  179.        
  180.                 // Mostramos
  181.                 for (i= 1; i <= numberOfObjects; i++)
  182.                 {
  183.                     thisObj = escena["object"+i];
  184.                     placeObj();
  185.                   displayObj();
  186.                 }  
  187.             }
  188.  
  189.            
  190.         }


Muchas gracias de antemano,

Etiquetas: galeria, interactiva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:13.