Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/09/2010, 14:01
Rote
 
Fecha de Ingreso: noviembre-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Ajustar tamaño panoramica en swf

Hola de nuevo,
Abandonando el tema del progress bar que abrí hace unos días, después de mucho investigar he conseguido un código que me permite hacer una panorámica en AS3 y además poner un preloader.

Es de RIA CODES y la verdad es que está muy bien explicado, para el que le interese está aquí:

http://www.riacodes.com/flash/create-a-360-panorama-viewer-with-as3/#more-1039

La clave a mi entender es la forma en que se cargan los jpg, por eso no me funcionaba antes.

Pero ahora el problema que tengo es otro. Quiero que la panorámica se situe es un espacio por ejemplo de 500x250 dentro de un documento que ocupa 900x600.

Con content_mc.x y content_mx.y consigo posicionarlo, pero luego se me expande a todo el ancho del documento, no sé si me explico. He probado a fijar las variables content_mc de anchura y altura, pero se vuelve loco.

¿Alguna idea? ...la verdad es que soy novato con AS3

Os pongo el código que carga la panorámica y a la que quiero que ocupe sólo un espacio definido en el escenario, no todo el ancho.

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Progress Event.PROGRESS, progressHandler);
loader.contentLoaderInfo.addEventListener(Event.CO MPLETE, completeHandler);
loader.load(new URLRequest("panorama1.jpg"));

function progressHandler(event:ProgressEvent):void{
var ratio:Number = event.bytesLoaded / event.bytesTotal;
percent.text = Math.ceil(ratio*100).toString() + " %";
}

var content_mc:Sprite = new Sprite();

function completeHandler(event:Event):void{
removeChild(percent);
percent = null;

var image1:Bitmap = (Bitmap)(loader.content);
var image2:Bitmap = new Bitmap(image1.bitmapData.clone());
content_mc.addChild(image1);
content_mc.addChild(image2);
image1.x = 0;
image2.x = image1.width;

addChild(content_mc);
content_mc.x = 50;
content_mc.y = 50;
content_mc.height=323;

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
}

function keyPressed(event:KeyboardEvent):void {
switch (event.keyCode) {
case Keyboard.LEFT :
content_mc.x += 20;
break;
case Keyboard.RIGHT :
content_mc.x -= 20;
break;
}

if (content_mc.x>0) {
content_mc.x= -content_mc.width /2;
}
else if (content_mc.x < stage.stageWidth - content_mc.width){
content_mc.x= stage.stageWidth - content_mc.width/2 ;
}
}