将javascript代码转换为Action脚本代码?

时间:2011-04-19 03:53:36

标签: javascript flex actionscript-3

Flex / AS3中以下代码的等效内容是什么?

var elem = document.getElementById('hiddenTestDiv');
elem.innerHTML = '<b><span class="redText">H</span>ello <span>World!</span></b>';
var innerText  = elem.innerText;  // equals 'Hello World!'
var contentLength = elem.innerText.length; // equals 12

3 个答案:

答案 0 :(得分:0)

我没有清楚地明确你的问题的基本目的,即 遍历特定元素并获取内容/文字及其内容/文字 lenght 。如果是这样,这个样本可能会有所帮助

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    creationComplete="{getElementByID('txt', this)}">
    <mx:Script>
        <![CDATA[
            import mx.controls.Text;
            import mx.core.Container;

            import mx.core.UIComponent;
            import mx.controls.Alert;

            private function getElementByID(name:String, container:Container):void
            {
                 var child:DisplayObject = container.getChildByName(name);

                 if (child != null)
                 {
                    Alert.show(Text(child).text+", Length :"+Text(child).text.length.toString());
                    return;
                 }
                 for each(var childContainer:Container in container.getChildren())
                 {
                    getElementByID(name, childContainer);
                 }

            }



        ]]>
    </mx:Script>

    <mx:HBox id="hBox" >
        <mx:Text text="Hello World" name="txt"/>
    </mx:HBox>

</mx:Application>

在此示例函数中, getElementByID 使用应用程序在给定容器示例的层次结构中通过给定名称获取控件

希望有所帮助

答案 1 :(得分:0)

简短的回答,没有'正确'的方法将Javascript转换为Flex。您必须了解AS3是面向对象的而Javascript不是。两个背后的基本概念也非常不同(显示列表,时间轴,框架,事件,绑定等)。

两者之间唯一的相似之处在于,动作脚本基于ECMAScript松散,Javascript也是如此。

然而,对于这种特殊情况,您似乎正在尝试将新数据绑定到标签,但由于缺乏细节,我无法为您提供任何示例代码。

答案 2 :(得分:0)

请注意,您可以在分配给htmlText属性的字符串中放置一些有限的html。在下面的示例中,我在mxml组件中设置粗体字体颜色属性。这可以在html或actionscript中完成。

    <mx:Script><![CDATA[

       function setHiddenText():void{
         hiddenTestText.htmlText = "H";
         hiddenTestText.htmlText = "ello World";
         var contentLength:Number = hiddenTestText.htmlText.length + hiddenTestText.htmlText.length;
       }

        ]]></mx:Script>


    <mx:HBox>
  <mx:Text id="hiddenTestText" fontWeight="bold" color="red"/>
  <mx:Text id="hiddenTestText2" fontWeight="bold"/>
</mx:HBox>