2012-11-03 62 views
0

我有一个Flash文件,我试图改变同一个按钮的值取决于点击的图像,但我不能让它与不同的值一起工作(我只能使它与静态值一起工作)。从xml文件获得一个href到闪存按钮

AS:

var weblinkXML:XML = new XML(); 
weblinkXML.ignoreWhite = true; 
weblinkXML.load("xml/main.xml"); 
weblinkXML.onLoad = function(success) { 
    trace("success = "+success); 
for (var i:Number = 0; i< weblinkXML.childNodes.length; i++) { 
PPTBUTTON.addEventListener(MouseEvent.CLICK, fl_ClickToGoToWebPage_1); 
     function fl_ClickToGoToWebPage_1(event:MouseEvent):void 
     { 
      navigateToURL(new URLRequest("test/test.html"), "_blank"); 
     } 
    } 
} 

我的XML:

<?xml version="1.0" encoding="iso-8859-1"?> 
<content> 
    <!-- general vars --> 
    <settings> 
     <item name="copyright"><![CDATA[<font letterspacing="0.5">© 2012 | <a href="event:privacy,0">PRIVACY POLICY</a></font>]]></item> 
     <item name="companyName"><![CDATA[<font letterspacing="-2"><b>TANITA</b></font>]]></item> 
     <item name="companySlogan"><![CDATA[<font letterspacing="1">PHOTO PORTFOLIO</font>]]></item> 
     <!--mp3Url srcUrl="music.mp3"/--> 
     <imagesPage> 
      <image imageUrl="images/tfile_splash_pic_main.jpg" /> 
     </imagesPage> 
    </settings> 

    <!-- menu --> 
     <menu> 
      <button><![CDATA[PORTFOLIO]]></button> 
      <button><![CDATA[ABOUT]]></button> 
      <button><![CDATA[NEWS]]></button> 
      <button><![CDATA[CONTACTS]]></button> 
     </menu> 

     <gallery gallName="Crystal Cabin Awards 2012"> 
      <image imageUrl="gallery/tfile_gall_small_01.jpg" imagesBig="gallery/tfile_gall_big_01.jpg" buttonName="PPTBUTTON" targ="_self" href="http://www.google.com"/> 
     <image imageUrl="gallery/tfile_gall_small_02.jpg" imagesBig="gallery/tfile_gall_big_02.jpg" buttonName="PPTBUTTON" targ="_self" href="http://www.youtube.com"/> 
     <image imageUrl="gallery/tfile_gall_small_03.jpg" imagesBig="gallery/tfile_gall_big_03.jpg" buttonName="PPTBUTTON" targ="_self" href="http://www.yahoo.com"/> 
      <image imageUrl="gallery/tfile_gall_small_04.jpg" imagesBig="gallery/tfile_gall_big_04.jpg"/> 
      <image imageUrl="gallery/tfile_gall_small_05.jpg" imagesBig="gallery/tfile_gall_big_05.jpg"/> 
      <image imageUrl="gallery/tfile_gall_small_06.jpg" imagesBig="gallery/tfile_gall_big_06.jpg"/> 
      <image imageUrl="gallery/tfile_gall_small_07.jpg" imagesBig="gallery/tfile_gall_big_07.jpg"/> 
      <image imageUrl="gallery/tfile_gall_small_08.jpg" imagesBig="gallery/tfile_gall_big_08.jpg"/> 
     </gallery> 

我意识到我的XML是复杂的,但它正在通过整个闪存使用。也许我可以把它降低到一个独立的XML只是想:

<image imageUrl="gallery/tfile_gall_small_02.jpg" imagesBig="gallery/tfile_gall_big_02.jpg" buttonName="PPTBUTTON" targ="_self" href="http://www.youtube.com"/> 

我的问题是,我从来没有试图让HREF到一个变量,并用它来代替“测试/ test.html的”,但它作品。

我也意识到我有一个内部的方法,但在这一点上我已经迭代了很多这个代码,我不确定如何继续。

+0

您的xml无效:''没有结束标记。这是复制/粘贴问题吗? –

+0

不行我只是粘贴了一部分的XML,其余与这个问题无关。其实主要问题是在标签 – Tsundoku

回答

0

这里的我怎么会检索href属性列表:

var loader:URLLoader = new URLLoader(); 
var request:URLRequest = new URLRequest("xml/main.xml"); 
loader.addEventListener(IOErrorEvent.IO_ERROR, function errorHandler(event:IOErrorEvent):void { 
    trace("Error loading XML" + event.type); 
}); 
loader.addEventListener(Event.COMPLETE, function(event:Event):void { 
    trace("success = " + event); 
    var xml:XML = new XML(loader.data); 
    var xmllist:XMLList = xml.gallery.children(); 
    for (var i:Number = 0; i < xmllist.length(); i++) { 
     trace(XML(xmllist[i]).attribute("href")); 
    } 
}); 
loader.load(request); 

我有以下的输出:

success = [Event type="complete" bubbles=false cancelable=false eventPhase=2] 
http://www.google.com 
http://www.youtube.com 
http://www.yahoo.com 

我希望帮助。

+0

这个答案很棒我几乎可以得到它,感谢这一点,你能帮助我在最后?我所做的就是将所有的url保存在一个数组中,然后我只想根据哪个父图像被点击来获取正确的url。 我已经看过这个文件,并得到这个图像库的长度'MovieClip(根).program.websiteXML.gallery [MovieClip(root).gallery_category_num] .image.length()'我可以修改获取当前图像idex?我尝试过'image.attribute.id','image.index',像你一样用XML包装它,但到目前为止没有任何东西=/ – Tsundoku

+0

我不明白:所以你有8个图像,每个图像对应于你的xml中的一个元素?你如何创建这些图像?如果您动态创建图像,则可以绑定“点击”事件以在创建时导航到您的网址。 –

+0

事情是,我被给了一个模板,我试图找出它。图像是动态创建的,但同一个按钮放置在它们的顶部,同一个按钮实例必须将我带到不同的URL。我的意图是找出哪些是父图像,并将其绑定到网址。所以,如果我做'MovieClip(根).program.websiteXML.gallery [MovieClip(root).gallery_category_num] .image'我得到的8个图像的xml,但我需要单击的ID,感谢您的帮助,迄今:) – Tsundoku