2013-06-19 42 views
1

我试图重现与本网站相似的书架:http://www.callis.com.br/如何访问在AS3中的动画片段内加载的JPG的宽度?

这些书是几种不同尺寸的PNG文件。

我想要完成的是,在加载几个不同的影片剪辑(book0,book1,book2,...)之后,读取它们的宽度,计算推动它所需的空隙,然后排列每个书。

每次我尝试访问宽度值,它说,它的0

这里是我的代码的一部分,这是试图做的伎俩。

在此先感谢。

for (j=0; j < dados.livro.length(); j++){ 
    if(j<8){ 
     targetLivro = MovieClip(MovieClip(root).livros.getChildByName("livro"+(j)));    
    }else{ 
     targetLivro = MovieClip(MovieClip(root).getChildByName("livro"+(j))); 
    } 

    preparaLivro(targetLivro,dados.livro[j].imagem.text(),dados.livro[j].link.text()); 

    //larguraTotalLivrosSup += targetLivro.width; 
    //trace(larguraTotalLivrosSup); 
    trace("livro"+j+": "); 
    trace("título:"+dados.livro[j].titulo.text()); 
    trace("imagem:"+dados.livro[j].imagem.text()); 
    trace("link:"+dados.livro[j].link.text()); 
} 

//organiza a primeira estante 

// 
/* 
for (i=0; i<largurasArray.length; i++){ 
    trace(largurasArray[i]); 
}*/ 

var offset:Number = 20; 
for (j=0; j<livros.numChildren; j++){ 
    //targetLivro = MovieClip(livros).getChildByName("livro"+(j)); 
    trace(livros.getChildAt(j).width); 
} 

function preparaLivro(livro:MovieClip, capa:String, url:String){ 
var capaLoader:Loader = new Loader(); 
var capaImageRequest:URLRequest = new URLRequest(capa); 

var capaBitmapData:BitmapData; 
var capaBitmap:Bitmap; 
var capaLargura:Number = 0; 

capaLoader.load(capaImageRequest); 
capaLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{ 
    capaBitmapData = new BitmapData(e.target.content.width, e.target.content.height); 
    capaBitmapData.draw(capaLoader); 
    capaBitmap = new Bitmap; 
    capaBitmap.bitmapData = capaBitmapData; 
    livro.y -= e.target.content.height; 

    trace(e.target.content.width, e.target.content.height); 
    livro.buttonMode = true; 
    livro.addChild(capaBitmap); 
    livro.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void{ 
      navigateToURL(new URLRequest(url), "_blank"); 
    }); 
    //trace(e.target.content.width); 
}); 
} 

回答

2

实例化位图从LoaderInfo(event.target).content像:

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
loader.load(new URLRequest("http://www.google.com/images/srpr/logo4w.png")); 

function onComplete(event:Event):void 
{ 
    var bitmapData:BitmapData = 
     Bitmap(LoaderInfo(event.target).content).bitmapData; 
} 

跟踪bitmapData.widthbitmapData.height输出:

宽度:550,高度:190

否则,如果从装载机希望宽度/高度,访问装载机的contentLoaderInfo

var width:Number = loader.contentLoaderInfo.width; 
var height:Number = loader.contentLoaderInfo.height; 
+0

谢谢!那样做了。 –

相关问题