1

我一直在尝试ExternalInterface通过 xml 文件将信息的变量传递到 Flash AS3 中,但无法弄清楚如何让数据随着每次新选择而改变。

我设法让它调用ExternalInterface并使用初始数据,但我似乎无法让它改变。

我在 HTML 中有以下代码,用于 PrettyPhoto 灯箱,到目前为止它按预期工作:

<script type="text/javascript" charset="utf-8">
  $(document).ready(function(){
$("a[rel^='prettyPhoto']").prettyPhoto({hideflash: false, allow_resize: true, callback: function() {PAYPAL.apps.MiniCart.hide(null);}
});
});
function launchPrettyPhoto(urlContent) {
        $.prettyPhoto.open(urlContent);
     }
</script>

要调用 xml 数据,我有许多字段表示图像、拇指、标题、描述,以及用于激活灯箱的链接的 url,如下所示:

function loadXML(event:Event):void {
xml=new XML(event.target.data);
var total:Number=xml.pic.length();
for (var i:int = 0; i < total; i++) {
    thumbs[i]=xml.pic.thumb.text()[i];
    images[i]=xml.pic.image.text()[i];
    titles[i]=xml.pic.title.text()[i];
    descriptions[i]=xml.pic.desc.text()[i];
    wwwlink[i]=xml.pic.link.text()[i];
}
loadThumbs();
trace("loading thumbs");    
loader.removeEventListener(Event.COMPLETE, loadXML);
}

在图像的每次更改中,数据都会通过以下几点进行更新,其中(理想情况下)ExternalInterface“url”也应该更改,这是我遇到的问题。

在每个新的选择中,数据都会被传递:

mainLoader.load(mainRequest);
title_txt.text = titles[theImg]; //Output title
desc_txt.text = descriptions[theImg]; Output Description
link_txt.htmlText = wwwlink[theImg]; Output URL

我有一个按钮来调用启动ExternalInterface下面的函数:

function callPrettyPhoto(url:String):void{
trace("Calling lightbox");
if (ExternalInterface.available) {
    // ExternalInterface calls function
    ExternalInterface.call("launchPrettyPhoto", url);
}
trace(ExternalInterface.call);
}

function initCall(event:MouseEvent):void {
// Call ExternalInterface
callPrettyPhoto(xml.pic.link.text());
}

就目前而言,一切正常,除了当我更改图像时它无法更新或更改“url”,其余的工作都在它相应地更新所有内容并根据需要调用灯箱。

从我所见,下面的行是发起者,因为它似乎引用了 xml 文件中的第一个 url,并且无法更新其余部分:

callPrettyPhoto(xml.pic.link.text());

我已经尝试过,但无法完全将其提交并希望您有经验的输入到我哪里出错了。

XML

<images>
<pic>
    <image>images/01_00_00.jpg</image>
    <thumb>images/_t01_00_00.jpg</thumb>
    <title>First Picture</title>
    <desc>Typical description</desc>
    <link><![CDATA[http://www.website.com/_i01_00_01.html?iframe=true&width=100%&height=100%]]></link>
</pic>
</images>
4

0 回答 0