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
答案 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>