Pay for Hesitation: AutoComplete_yahoo_astra

Pages

2008年3月11日 星期二

AutoComplete_yahoo_astra

很酷的AutoComplete,
可以用tag的方式來自動完成輸入.
因為來源檔可以是xml,
所以只要能夠從後端資料庫產生xml檔,
應該就能餵給autoComplete了~~

但是....下面的寫法並不支援中文.....
不知是否得以改進~
此外效能如何也尚未得知~

p.s 我辦麥當勞早餐卡了~~

code來自下面這個網址的最後一個例子
http://developer.yahoo.com/flash/astra-flex/autocompletemanager/
  1. xml version="1.0" encoding="utf-8"?>
  2. <mx:Application
  3. xmlns:mx="http://www.adobe.com/2006/mxml"
  4. xmlns:yahoo="http://www.yahoo.com/astra/2006/mxml">
  5. layout="absolute"
  6. <mx:Script>

  7. private function airportFilterFunction(element:*, text:String):Boolean
  8. {
  9. var regExp:RegExp = new RegExp(text,autoCompleteMgr.caseSensitive?"":"i");

  10. var b:Boolean = regExp.test(element.city.toString()) ||
  11. regExp.test(element.name.toString()) ||
  12. regExp.test(element.code.toString());

  13. return b;
  14. }

  15. mx:Script>
  16. <yahoo:AutoCompleteManager
  17. id="autoCompleteMgr"
  18. target="{textInput1}"
  19. dataProvider="{airports.airport}"
  20. labelField="name"
  21. filterFunction="{airportFilterFunction}"
  22. minCharsForCompletion="3" />

  23. <mx:XML id="airports">
  24. <airports>

  25. <airport>
  26. <city>Chicagocity>
  27. <name>Chicago O'Hare Internationalname>
  28. <code>ORDcode>
  29. <country>USAcountry>
  30. airport>

  31. <airport>
  32. <city>San Franciscocity>
  33. <name>San Francisco Internationalname>
  34. <code>SFOcode>
  35. <country>USAcountry>
  36. airport>

  37. ...

  38. airports>
  39. mx:XML>

  40. <mx:Label x="74" y="50" text="Try an airport or airport code:" fontWeight="bold"/>
  41. <mx:Label x="74" y="67" text="example: "ORD", "Chicago", or "O'Hare"" fontWeight="normal" fontStyle="italic"/>
  42. <mx:TextInput id="textInput1" left="74" top="93" width="247"/>

  43. mx:Application>

1 則留言:

Odd 提到...

那看來以後周末的早餐又要麻煩你了 XDD