AS脚本块中的XML节点值

时间:2009-09-29 21:53:13

标签: xml flex actionscript

好吧我希望这不是蹩脚的问题,但我真的放弃了在网上搜索任何明确的如何做到这一点的例子。

这是最终结果目标:我只想显示xml节点的值,该节点是htmlText属性中的url。

我的方法很简单,获取mx:XML源并使用XMLListCollection引用源,在text属性中显示链接为htmlText =“{myDisp.selectedItem。@ link}” 这显示就好了。 那么我试着在AS脚本块中拉出相同的值,这样我就可以将链接的值和字符串文字连接成一个值来显示在htmlText属性中。

像这样...... “体验应用程序”;

我的挂机是,我无法弄清楚如何在AS中获得简单的价值,这样我就可以解决这个简单的问题。 :)

2 个答案:

答案 0 :(得分:0)

您可以发布一些代码来说明您在做什么吗?所以你不能只引用组件的htmlText属性? - 您是否为要引用的组件分配了一个id,即myComponent.htmlText? 干杯, 卡斯帕

答案 1 :(得分:0)

非常感谢您回复我的帖子! 实际上,我在发布问题的第二天就知道了。 我会在这里发布代码,希望我可以传播快乐...... :)

代码 -

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
 <mx:Script>
  <![CDATA[
   import mx.controls.Text;
   import mx.events.ListEvent;



   //New declarations: Get the link value from the database to display 
   //the link as hyperlink 

   // set the binding expression so it can be called as the link //
   [Bindable]
   public var myLink:String = link;
   public var link:String;

   public function getMyLink(event:Event):void 
   {
    var link:String = flashDisp.selectedItem.@link;
    getTheURL(link);
    var myLink:String = link;
   }

// get the link and assign it as the 'Friendly' URL //
public function getTheURL(link:String):void
{
link = "<a href=\"" + link + "\"target=\"_blank\">Visit the web site</a>";
myLink = link;
}
]]>
</mx:Script>
<mx:XML id="xml" source="data/galleryflash.xml" />
<mx:XMLListCollection id="myData" source="{xml.image}" />
<mx:TileList id="flashDisp"
  dataProvider="{myData}"
  itemRenderer="titleItemRenderer"
  columnCount="2"
  rowCount="4"
  width="200"
  color="#FEFFFF" 
  <!-- this is the trick to call the function -->
  change="getMyLink(event)">
</mx:TileList>
<mx:Panel width="725" height="600" layout="absolute">   
   <mx:Image x="10" y="10" width="685" height="470"   source="flashDisp.selectedItem.@fullImage}" scaleContent="false" 
visible="{flashDisp.selectedItem}"/>
<mx:Text x="10" y="488"

<!-- this is the magic way to call the new dynamic link which is updated by selectedItem call and then displays it back as html-->
 htmlText="{myLink}" 
color="#FFFFFF" fontFamily="Arial" fontSize="14" condenseWhite="true">
</mx:Text>
</mx:Panel>

我的XML看起来像这样。

<gallery>
<image title ="My Title"
thumbnails = "imgs/thumbs/mylittlethumb.gif"
fullImage = "imgs/myFullImage.jpg"
link = "testLink1.html"/>
</gallery>

要制作itemRenderer,你需要这样的东西。 一个名为titleItemRenderer.mxml的文件(您可以将其创建为“新组件”。

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/03/08/creating-a-simple-image-gallery-with-the-flex-tilelist-control/ -->
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
  horizontalAlign="center"
  verticalAlign="middle">

 <mx:Image source="{data.@thumbnailImage}"  />

 <mx:Label text="{data.@title}" />


</mx:VBox>

祝你有美好的一天! 〜打蜡