Actionscript 3 ActionScript 3.0获取加载的电影剪辑图像的索引[单击事件]

Actionscript 3 ActionScript 3.0获取加载的电影剪辑图像的索引[单击事件],actionscript-3,scripting,adobe,flash-cs5,Actionscript 3,Scripting,Adobe,Flash Cs5,我正在将一组缩略图像从阵列[硬编码]加载到舞台上的movieclip符号中。我有两个数组,缩略图和全尺寸图像具有相同的索引号。在许多示例中,“event.currentTarget.contentLoaderInfo.url”返回所选图像的完整路径。我只想要索引号 Adobe不容易从contentLoaderInfo中找出我可用的其他属性。“SelectedIndex”或类似的东西是否可用 程序员在哪里可以找到contentLoaderInfo属性和/或方法?url是我们在这里唯一可用的东西吗

我正在将一组缩略图像从阵列[硬编码]加载到舞台上的movieclip符号中。我有两个数组,缩略图和全尺寸图像具有相同的索引号。在许多示例中,“event.currentTarget.contentLoaderInfo.url”返回所选图像的完整路径。我只想要索引号

Adobe不容易从contentLoaderInfo中找出我可用的其他属性。“SelectedIndex”或类似的东西是否可用

程序员在哪里可以找到contentLoaderInfo属性和/或方法?url是我们在这里唯一可用的东西吗

有更好的方法吗

提前谢谢

编辑

var thumbnails:Array = ["tn_2010OpenHouse_00.jpg","tn_2010OpenHouse_01.jpg"];
var images:Array = ["2010OpenHouse_00.jpg","2010OpenHouse_01.jpg"];
var thumbX:Number = 10;
var thumbY:Number = 623;
var loader:Loader = new Loader();
loader.load(new URLRequest("images/" + images[0]));
addChild(loader);
loadThumbs();

function loadThumbs():void
{
    var thumbLoader:Loader;
    var container:Sprite = new Sprite();
    container.width =  100;
    addChild(container);

    container.buttonMode = true;
        for (var i:uint = 0; i < thumbnails.length; i++)
    {
        thumbLoader = new Loader();
        thumbLoader.load(new URLRequest("images/" + thumbnails[i])); 
        thumbLoader.x = thumbX; 
        thumbLoader.y = thumbY;
        thumbX +=  100;
        container.addChild(thumbLoader);
        thumbLoader.addEventListener(MouseEvent.CLICK, thumbClicked);
        container.width +=  100;
        addChild(thumbLoader);
    }
    stop();
}

function thumbClicked(ev:MouseEvent):void
{
         //weltraumpirat's example 
    var index:int = thumbnails.indexOf ( ev.target.contentLoaderInfo.url );
    trace("Index= "+ index);
         //trying a different approach as well 
    index = thumbnails.indexOf ( ev.currentTarget.contentLoaderInfo.url );
    trace("Index= "+ index);
    loader.load(new URLRequest("images/" + images[index]));
}
var缩略图:数组=[“tn_2010OpenHouse_00.jpg”,“tn_2010OpenHouse_01.jpg”];
var图像:数组=[“2010OpenHouse_00.jpg”,“2010OpenHouse_01.jpg”];
变量thumbX:Number=10;
变量thumbY:Number=623;
变量加载器:加载器=新加载器();
loader.load(新的URLRequest(“images/”+images[0]);
addChild(装入器);
加载拇指();
函数loadThumbs():void
{
var-thumbLoader:Loader;
变量容器:Sprite=新Sprite();
容器宽度=100;
addChild(容器);
container.buttonMode=true;
对于(变量i:uint=0;i
输出: 索引=-1 索引=-1
错误#2044:未处理的IOErrorEvent:。text=Error#2035:找不到URL。

contentLoaderInfo
属性返回一个
LoaderInfo
类。您可以在此处查看其属性:

您可以使用返回对象的索引。由于我不知道您的其余代码,下面是一个近似示例:

function thumbClicked (ev:MouseEvent) : void {

    var index:int = thumbnails.indexOf ( ev.target.contentLoaderInfo.url );
    loader.load ( new URLRequest (fullSizeImages[index]) ) ;
}
编辑

var thumbnails:Array = ["tn_2010OpenHouse_00.jpg","tn_2010OpenHouse_01.jpg"];
var images:Array = ["2010OpenHouse_00.jpg","2010OpenHouse_01.jpg"];
var thumbX:Number = 10;
var thumbY:Number = 623;
var loader:Loader = new Loader();
loader.load(new URLRequest("images/" + images[0]));
addChild(loader);
loadThumbs();

function loadThumbs():void
{
    var thumbLoader:Loader;
    var container:Sprite = new Sprite();
    container.width =  100;
    addChild(container);

    container.buttonMode = true;
        for (var i:uint = 0; i < thumbnails.length; i++)
    {
        thumbLoader = new Loader();
        thumbLoader.load(new URLRequest("images/" + thumbnails[i])); 
        thumbLoader.x = thumbX; 
        thumbLoader.y = thumbY;
        thumbX +=  100;
        container.addChild(thumbLoader);
        thumbLoader.addEventListener(MouseEvent.CLICK, thumbClicked);
        container.width +=  100;
        addChild(thumbLoader);
    }
    stop();
}

function thumbClicked(ev:MouseEvent):void
{
         //weltraumpirat's example 
    var index:int = thumbnails.indexOf ( ev.target.contentLoaderInfo.url );
    trace("Index= "+ index);
         //trying a different approach as well 
    index = thumbnails.indexOf ( ev.currentTarget.contentLoaderInfo.url );
    trace("Index= "+ index);
    loader.load(new URLRequest("images/" + images[index]));
}
因为我不知道您使用的确切代码,所以我假设您将图片的整个路径存储在数组中。在代码中,您在“images/”前面加了前缀,因此代码应该是:

function thumbClicked (ev:MouseEvent) : void {

    var index:int = thumbnails.indexOf ( ev.target.contentLoaderInfo.url.substring (7)); 
    // 7 is the length of "images/", so substring returns only the filename part.

    loader.load ( new URLRequest (fullSizeImages[index]) ) ;
}

我成功地加载了第一个完整的六个图像,以及舞台上的所有缩略图。这是我当前添加的代码:函数thumbClicked(ev:MouseEvent):void{var index:int=thumbnails.indexOf(ev.target.contentLoaderInfo.url);trace(“index=”+index);index=thumbnails.indexOf(ev.currentTarget.contentLoaderInfo.url);trace(“index=”+index);loader.load(new-URLRequest(“images/”+images[index]);)函数thumbClicked(ev:MouseEvent):void{var index:int=thumbnails.indexOf(ev.target.contentLoaderInfo.url);trace(“index=”+index);index=thumbnails.indexOf(ev.currentTarget.contentLoaderInfo.url);trace(“index=”+index);loader.load(新的URLRequest(“图像/”+images[index]);}输出如下:Index=-1 Index=-1 Error#2044:未处理的IOErrorEvent:。text=Error#2035:找不到URL。加载缩略图后,如何在舞台上引用它?抱歉,这是我第一次尝试在这里回答问题。谢谢你的帮助。此帖子可以删除。您可以自己删除评论;)让我们看看,在我的问题中,我问的是“contentLoaderInfo”以及除了“url”之外还有哪些其他属性[方法]可用,以及在哪里可以找到这些信息。[Adobe的“intellisense”只是略有用处,只在需要时显示]。我要判断“contentLoaderInfo”=LoaderInfo吗?我想我应该判断“contentLoaderInfo”只有一个属性“url”。Adobe的逐字记录:任何
加载器
对象都可以使用
contentLoaderInfo
属性。对于未调用
load()
loadBytes()
方法的
Loader
对象,或未充分加载的
Loader
对象,尝试访问
contentLoaderInfo
属性的许多属性会引发错误。
Loader
对象的
contentLoaderInfo
属性提供有关
Loader
对象正在加载的内容的信息,而
DisplayObject
loaderInfo
属性提供有关该显示对象的根SWF文件的信息。简言之,
stage.loaderInfo
loader.contentLoaderInfo
都使用
loaderInfo
对象(表示相同的属性),但提供不同的值。感谢您的帮助。这篇文章可以删除。