在AS3中: 我在数组中有一个长文本。
var myHugeArray:Array = ["I love Apple
I have an Iphone
I eat a Banana
I'm John
I sell a computer
I sell an Apple
I love rock
I sell a car"];
如何搜索特定字词? (比如:用“apple”这个词给我看句子) - >输出:“我爱苹果”和“我卖苹果”
谢谢,
修改
这是我到目前为止所做的:
loader5.load(urlReq);
loader5.addEventListener(Event.COMPLETE,completeHandler2);
function completeHandler2(event:Event):void{
loader5.removeEventListener(Event.COMPLETE,completeHandler2);
trace("Données envoyées");
feedbackText.text = "Données envoyées";
loader5.load(urlReq);
loader5.addEventListener(Event.COMPLETE, complete);
}
function complete(e:Event):void {
addChild(list);
products = JSON.parse(loader5.data) as Array;
feedbackText.text = "complete";
for(var i:int = 0; i < products.length; i++){
createListItem(i, products[i]);
}
showList();
}
function createListItem(index:int, item:Object):void {
var listItem:TextField = new TextField();
listItem.text = item.title;
listItem.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
showDetails(item);
});
list.addChild(listItem);
str = item.title;
bar();
}
function bar(){
var arr: Array ;
searchBar.type = TextFieldType.INPUT;
var suggested:Array = new Array();
var textfields:Array = new Array();
searchBar.addEventListener(Event.CHANGE, suggest);
arr = str.split(",");
trace(arr);
function suggest(e:Event):void
{
suggested = [];
for (var i:int = 0; i < textfields.length; i++)
{
removeChild(textfields[i]);
}
textfields = [];
for (var j:int = 0; j < arr.length; j++)
{
if (arr[j].indexOf(searchBar.text.toLowerCase()) != -1)
{
var term:TextField = new TextField();
term.width = 360;
term.height = 24;
term.x = 18;
term.y = (24 * suggested.length) + 135;
term.border = true;
term.borderColor = 0x353535;
term.background = true;
term.backgroundColor = 0xFF9900;
term.textColor = 0x4C311D;
term.defaultTextFormat = format;
addChild(term);
suggested.push(arr[j]);
term.text = arr[j];
}
}
function showList():void {
list.visible = true;
}
function showDetails(item:Object):void {
titleTxt.htmlText = item.title;
detailsTxt.htmlText = "<U>prix:</U> " + item.prix + " xpf"+ "\n\n<U>Description:</U> " + "\n"+item.theDescription + "\n"+"\n\n<U>Contact:</U> " + item.mail+ "\n"+item.phone;
}
所以,我的AS3代码用loader5
搜索PHP变量。
php发现的所有项目都放在一个数组(products
)中。
并创建所有产品的列表。 (createListItem
)。
如果我点击一个项目,它会显示一些细节(价格,描述等等)。这是函数showDetails();
知道我已经创建了一个searchBar(自动完成)。
创建一个分组字符串(arr
)的数组(str
)。
然后它执行搜索数组所做的工作。
问题:
1 /奇怪的是,并非所有单词都显示在我的searchBar中。有些词是有效的,有些则没有。
2 /当用户点击建议showDetails()
时,如何调用函数term
? (term.addEventListener(MouseEvent.CLICK,showDetails));由于terms
不是item.title
,因此不起作用。 ShowDetails
正在显示item.title
的详细信息。 (那我该怎么说term
= item.title
?)
答案 0 :(得分:0)
您的myHugeArray
只是字符串,所以split()
只有\n'
,你得到了
例如ret数组,然后找到一个包含你搜索的单词,比如&#34; apple&#34;,在每个字符串中使用indexof()
答案 1 :(得分:0)
您需要将字符串拆分为数组,然后搜索每个项目 看一下这个 https://stackoverflow.com/a/34842518/3623547