2009-09-29 2 views
0

ОК Я надеюсь, что это не вопрос хроники, но я честно отказался от поиска в сети, чтобы получить какой-либо четкий пример того, как это сделать.Значение узла XML в блоке AS Script

Вот цель конечного результата: я просто хочу отобразить значение узла xml, который является URL-адресом в свойстве htmlText.

Мой подход прост, получить тх: «{. MyDisp.selectedItem @ ссылка}» источник XML и со ссылкой XMLListCollection источника, чтобы отобразить ссылку в текстовом виде собственности HTMLText = Это показывает, просто отлично. Итак, я попытался вытащить то же самое значение в блоке сценария AS, чтобы затем конкатенировать значение ссылки и строковый литерал как одно значение для отображения в свойстве htmlText.

Вроде так ... «Опыт применения»;

Я повесил трубку, я не могу понять, как получить простое значение в AS, чтобы я мог пройти мимо этой простой головной боли. :)

ответ

0

Можете ли вы разместить немного кода, чтобы проиллюстрировать, что вы делаете? Значит, вы не можете просто ссылаться на свойство htmlText компонента? - присвоили ли вы идентификатор компоненту, который вы хотите ссылаться, т.е. myComponent.htmlText? Cheers, Caspar

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 = [email protected]; 
    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="[email protected]}" 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="{[email protected]}" /> 

<mx:Label text="{[email protected]}" /> 


</mx:VBox> 

Есть великий день! ~ Вощеная

Смежные вопросы