我最近在同一个项目上发布了一个问题,walkietokyo 很有帮助地回答了这个问题。上一个问题
所以我的新问题是使用该解决方案使文本精灵可搜索。因此,在这种情况下,您可以单击创建的任何动态文本字段,as3 会将特定文本字段的内容与 xml 中的数据相匹配,这样做后,它将从节点容器中获取另一个节点对于 xml 的每个部分(例如
<Searchtext Wordlookup="chris cheeser">
<location>1</location>
<Name>chris cheeser</Name>
</Searchtext>
所以它会注意到我单击的文本字段充满了 chris cheeseer,然后它将与我的 Wordlookup 匹配,并识别位置,并将其与我的同名电影剪辑匹配)
我当前的 as3 如下所示:
private function XMLLoader(e:Event):void
{
xmlData = new XML(e.target.data);
ParseList(xmlData);
}
private function ParseList(nameData:XML):void
{
var nameList:XMLList = nameData.Searchtext.Name;
// var textContainer:Sprite = new Sprite();
this.addChild(textContainer);
for each (var nameElement:XML in nameList){
// var format:TextFormat = new TextFormat();
format.font = "Arial MT";
format.size = 22;
format.color = 0x006699;
var currTextField:TextField = new TextField();
currTextField.defaultTextFormat = format;
currTextField.appendText(nameElement.text() + "\n");
currTextField.y= 1297 + textContainer.height;
currTextField.height = 40;
currTextField.width = 280;
currTextField.x= 88;
currTextField.selectable = false;
textContainer.addChild(currTextField);
trace(nameElement.text());
}
}
private function onTextClick(e:Event):void
{
var currTextField:TextField = e.target as TextField;
if (SearchHolder != null){
TweenMax.to((this["$" + SearchHolder]), 1, {removeTint:true});
}
var resultZ:String = xmlData.Searchtext.(@Wordlookup == currTextField.text.toLowerCase).location.toString()
SearchHolder = resultZ ? resultZ : "Try again";
trace(resultZ);
TweenMax.to(["$" + SearchHolder], 1, {tint:0x00ffcc});
trace("This name was clicked:", currTextField.text);
}
所有被注释掉的东西都放在函数之外,resultZ 和 SearchHolder 都被公开标识为字符串,但是我一直对定义 var resultZ 的行有问题(我通过几个小时的摆弄试图弄清楚这一点) 现在我对 resultZ 的跟踪没有产生任何结果,这告诉我它与 currTextfield 有关,因为我有一个相同的函数设置了一个仍然有效的输入字段。任何帮助将不胜感激,但尽量描述,我还在学习!谢谢!!