ActionScript 和 XML:拉入链接图像

Posted

技术标签:

【中文标题】ActionScript 和 XML:拉入链接图像【英文标题】:ActionScript and XML: Pull in a linked image 【发布时间】:2015-10-06 08:28:03 【问题描述】:

我需要在我们的 xml 文件中添加一个新变量来拉入链接图像图标

这是当前的动作脚本:

stop ();
//
var xmlLoaded:Boolean = false;
//var xmlurl:String = "xml/flagFile.xml";

var xmlurl:String = "http://nstpr.com/sites/wd40/facebook/iframe/global/flagfile.xml";


//var xmlurl:String = "http://nextwavemultimedia.com/nstpr/GoGlobal/xml/flagFile.xml";
var xmlFile:XML = new XML ();
xmlFile.ignoreWhite = true;
function loadXML ()

    thumbArray = new Array ();
    bigArray = new Array ();
    txtArray = new Array ();
    linkArray = new Array ();
    xmlFile.load (xmlurl);
    tracevar.text = "xmlurl = " + xmlurl;
    xmlFile.onLoad = function (success)
    
        //trace ("success = " + success);
        tracevar.text += "\n success = " + success;
        if (success)
        
            parseXML (this.firstChild);
            //trace ("xmlFile = " + xmlFile.firstChild);
            tracevar.text += "\n xmlFile.firstChild = " + xmlFile + " :: " + this;
            delete loaderFill_mc.onEnterFrame;
            childLength = xmlFile.firstChild.childNodes.length - 1;
            tracevar.text += "\n childLength = " + childLength;
            if (childLength > 0)
            
                for (var i = 0; i <= childLength; i++)
                
                    linkArray[i] = new Array ();
                    bigArray.push (xmlFile.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue);
                    thumbArray.push (xmlFile.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue);
                    txtArray.push (xmlFile.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue);
                    var link_length:Number = xmlFile.firstChild.childNodes[i].childNodes[3].childNodes.length;
                    tracevar.text += "\n link_length = " + link_length;
                    if (link_length > 0)
                    
                        for (var j = 0; j < link_length; j++)
                        
                            linkArray[i][j] = xmlFile.firstChild.childNodes[i].childNodes[3].childNodes[j].firstChild.nodeValue;
                        
                    
                
                xmlLoaded = true;
            
        
    ;

loadXML ();

这里是xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Server SYSTEM "opt/pdos/etc/pdoslrd.dtd">
<text>

    <flag>
        <big>https://nstpr.com/sites/wd40/facebook/iframe/global/biggerImages/unitedKingdom.png</big>
        <thumb>https://nstpr.com/sites/wd40/facebook/iframe/global/flagimages/unitedKingdom.png</thumb>

        <text>United Kingdom</text>
        <links>
            <link><![CDATA[<font color='#000000'><a href='http://www.wd40.co.uk/?utm_source=facebook&utm_medium=social_media&utm_campaign=Global' target='_blank'><u>www.wd40.co.uk</u></a></font>]]></link>
            <link><![CDATA[<font color='#000000'><a href='http://www.facebook.com/OriginalWD40.UK?utm_source=facebook&utm_medium=social_media&utm_campaign=Global' target='_blank'><u>Facebook</u></a></font>]]></link>
            <link><![CDATA[<font color='#000000'><a href='http://www.twitter.com/OriginalWD40_UK?utm_source=facebook&utm_medium=social_media&utm_campaign=Global' target='_blank'><u>Twitter</u></a></font>]]></link>
        </links>
    </flag>             

</text>

基本上,我只需要能够在 中添加图像,因此它不会链接 Facebook 一词,而是链接 Facebook 符号的图像。当我在其中添加图像路径时,链接确实有效,但图像本身没有出现,图像应该在的地方只是空白。

我试过了:

<link><![CDATA[<a href='http://www.facebook.com/OriginalWD40.UK?utm_source=facebook&utm_medium=social_media&utm_campaign=Global' target='_blank'><img src="http://nstpr.com/sites/wd40/facebook/iframe/global/images/icon-facebook.png"  /></a>]]></link>

但是,这不起作用...图像没有出现

如果这很容易,我很抱歉,但我不是一个动作脚本人。提前致谢!

【问题讨论】:

您可以将新的 xml 内容发送到服务器端脚本(php、asp、...),该脚本可以更新服务器上的文件。 @akmozo 更新服务器上的哪个文件?输出是一个 .swf 文件,其中包含 .xml 信息——我认为新变量需要添加到 actionscript 中,然后才能从 .xml 文件中读取,但不确定如何正确设置 您是否手动更新您的 xml 文件? @akmozo 是的,我正在手动更新它以定义链接和图像等。 好的,我明白了,所以你试图放一张图片而不是简单的文字,但你没有得到它!但要显示图像,我认为您的 TextField 应该是多行的。 【参考方案1】:

根据Adobeabout the &lt;img&gt; tag工作成html text of a text field in AS2:

该标签允许您在文本字段和 TextArea 组件实例中嵌入外部图像文件(JPEG、GIF、PNG)、SWF 文件和影片剪辑。文本自动在您嵌入文本字段或组件中的图像周围流动。 要使用此标签,您必须将动态或输入文本字段设置为多行并换行

要使用自动换行创建多行文本字段,请执行以下操作之一:

在 Flash 创作环境中,在舞台上选择一个文本字段,然后在属性检查器中,从文本类型菜单中选择多行。

对于在运行时使用 createTextField(MovieClip.createTextField 方法)创建的文本字段,将新文本字段实例的多行(TextField.multiline 属性)和自动换行(TextField.wordwrap 属性)属性设置为 true。

因此,为了让您的 html 代码正常工作,您应该使用启用自动换行的文本字段的多行。您还可以在 &lt;img&gt; 标签之前插入一些文本(甚至是空格),您会得到它的工作。

希望能有所帮助。

【讨论】:

以上是关于ActionScript 和 XML:拉入链接图像的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 as3中的动态HTML / XML链接

将特定的 XML 节点拉入 HTML 文档

将 XML nodeValue 拉入 php 变量

从URL将图像拉入字节数组

Actionscript 3 和带有 CDATA 的 XML

未在加载函数之外保存的数组 - ActionScript 3 和 XML