Feeds:
文章
迴響

Archive for 2006 年 12 月

Flex 使用 Yahoo 搜尋服務

最新版本:http://docs.google.com/View?docid=dcxw59mr_889j4jzc2

YAHOO 提供 REST 的搜尋服務,且 Flex2 使用的 ActionScript3 支援 URLLoader 和 XML,使得取用 Yahoo 服務相當容易。不過可能官方釋出的版本是使用 Preview 版本,所以,似乎還不是很完整,且 XML 也不是使用語言原生的 E4X,另外,型別的宣告也不是很完整。例如:YahooSearchResultEvent 的 28 和 29 行並沒有明確指定變數的型別,為了避免編譯警告,可以將這兩行程式碼修改成如下

var ns:Namespace = new Namespace(this.searchNamespace);
for(var i:String in this.$xml.ns::Result)

 另外,經過我的測試,文件上描述的使用方法和實際上的使用有落差。總之,該篇文件是我的測試結果。 

首先下載 Yahoo 官方提供的 YahooAPI 類別,然後撰寫以下範例程式

yahoo.as

package {
    import flash.display.Sprite;
    import com.yahoo.*;
    import com.yahoo.search.*;
    import flash.net.*;

    public class yahoo extends Sprite {
        public function yahoo() {           
            var loader:URLLoader = YahooAPI.search("Chui-Wen Chiu", YahooAPI.WEB_SEARCH, new NameValuePair(‘results’, String(5) )); 
            loader.addEventListener(YahooSearch.ON_RESULT, onYahooSearchResult);
        }

        private function onYahooSearchResult(e:com.yahoo.search.YahooSearchResultEvent):void { 
            trace(‘onYahooSearchResult invoked’); 
            trace(e.length + " items found: n"); 

            var result:YahooSearchResult
            // set up an handler Function which will be invoked when the search response is received
            for(var i:Number = 0; i < e.length; i++) 
            { 
                result = e.getResult(i); 
                trace(result.Title); 
                trace(result.Url + "n"); 
            } 
        } 
    }
}

 
上述程式基本上很容易瞭解,先來看
var loader:URLLoader = YahooAPI.search("Chui-Wen Chiu", YahooAPI.WEB_SEARCH, new NameValuePair(‘results’, String(5) ));
 
這是透過 YahooAPI 的靜態方法 search 查詢 "Chui-Wen Chiu" 這個關鍵字,搜尋的類型是網頁(YahooAPI.WEB_SEARCH),new NameValuePair(‘results’, String(5) ) 表示希望回傳的查詢結果筆數為 5 筆。最後回傳 URLLoader 物件,這個 URLLoader 物件很重要,官方文件並沒有特別提到這個,我研究了一下官方原始碼才發現需要透過這個物件才能觸發 onYahooSearchResult 事件,不過這種寫法也挺怪得,我想未來可能還會改變。
 
loader.addEventListener(YahooSearch.ON_RESULT, onYahooSearchResult);
 
接著取得 URLLoader 之後,你要監聽 YahooSearch 自訂的 YahooSearch.ON_RESULT 事件, 使期能再接收到查詢結果之後觸發 onYahooSearchResult 並取得結果。在 onYahooSearchResult 事件中,透過 YahooSearchResultEvent 事件參數的 length 屬性和 getResult() 方法取得查詢結果。length 表示查詢結果的筆數,getResult()可取得每一筆查詢結果(YahooSearchResult 物件)的相關資料,YahooSearchResult 物件提供 title 屬性取得標題,url 屬性取得超連結。
 
所以,只需要透過簡單的幾行程式碼,就可以賦予 Flex 程式使用 Yahoo 的搜尋服務。以下是範例執行結果:

 

 另外,他除了可以查詢網頁之外,還有支援影像與新聞群組,只需要將 YahooAPI.WEB_SEARCH 換成YahooAPI.IMAGE_SEARCH 或 YahooAPI.NEWS_SEARCH 即。

 參考資料:
[1]  http://developer.yahoo.com/flash/howto-search_as3.html

Read Full Post »

Flex 無法直接與資料庫建立連線。你只能透過 MXML 和 ActionScript 處理資料。當 Flex 需要取用遠端資料庫的資料時,需要透過網路服務來取得所需資料,以下示範 Flex 使用 HTTPService 元件取用遠端資料並透過 DataGrid 顯示 HTTPService 回傳的 XML 資料。

1. 指定外部資料來源
使用 HTTPService 的 url 屬性指定資料來源。如下:
    <mx:HTTPService
    id="productsRequest"
    url="http://192.168.10.120:2527/products.php&quot; />

2. 將資料導入資料驅動的控制項
HTTPService 元件處理後的資料格式為 XML,為了顯示這份資料,可以使用資料驅動的控制項-DataGrid 來顯示。DataGrid 要透過 dataProvider 屬性來與資料繫結(binding)。顯示的 XML 節點資料透過 dataField 屬性指定。範例回傳的XML 格式為

<XML>
    <products>
        <item>
            <name>Mobile Phone</name>
            <price>$199</price>
        </item>
        <item>
            <name>Car Charger</name>
            <price>$34</price>
        </item>
    </products>
</XML>

所以, dataProvider 的設定方式是 productRequest.lastResult.XML.products.item,其中 productRequest.lastResult 是取得的回傳結果,而XML.products.item 是 XML 的樹狀階層。另外,要顯示的欄位 dataField 設定為 name 和 price。相關對應關係參考上下程式碼的顏色對應。

<mx:DataGrid x="20" y="80" id="productGrid" width="400" dataProvider="{productRequest.lastResult.XML.products.item}" > 
<mx:columns>
<mx:DataGridColumn headerText="Name" dataField="name" />
<mx:DataGridColumn headerText="Price" dataField="price" />
</mx:columns>
</mx:DataGrid>

3. 程式啟動時,立即載入遠端資料
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml&quot; layout="absolute" creationComplete="productsRequest.send()" >

 

4. 程式執行階段手動載入遠端資料

<mx:Button x="50" y="8" label="Get Data" click="productsRequest.send();" />



完整範例:
linkData.mxml
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml&quot;
    layout="absolute"
    creationComplete="productsRequest.send()" >

    <mx:HTTPService
    id="productsRequest"
    url="http://192.168.10.120:2527/products.xml&quot; />

    <mx:DataGrid x="20" y="80" id="productGrid" width="400" dataProvider="{productsRequest.lastResult.products.items}" >
        <mx:columns>
            <mx:DataGridColumn headerText="Name" dataField="name" />
            <mx:DataGridColumn headerText="Price" dataField="price" />
        </mx:columns>
    </mx:DataGrid>

    <mx:Button x="50" y="8" label="Get Data" click="productsRequest.send();" />
</mx:Application>

products.php

<?php
header(‘Content-type: text/xml’);
?>
<XML>
    <products>
        <item>
            <name>Mobile Phone</name>
            <price>$199</price>
        </item>
        <item>
            <name>Car Charger</name>
            <price>$34</price>
        </item>
    </products>
</XML>

 

執行結果:

 

參考資料:
[1] Flex Help, "How Flex Works |Connecting to data"

 

Read Full Post »

一段話

神蹟是建立在下跪的膝蓋所獻上的祈禱~
 
 
摘自:李順長, 目標導向小組查經資料:敬拜讚美

Read Full Post »

Alcohol 52% 免費版

Alcohol 120% 這個大家耳熟的軟體,目前出了 Alcohol 52% 免費版本,雖然少了 68% 但功能可不陽春,他還是具有強大的備份和光碟模擬功能,只是這個免費版本只能模擬 6 台虛擬光碟機,不過對於一般使用者來說已經相當足夠了。需要的人趕快下載試用吧 ^^

參考資料:
[1] http://toget.pchome.com.tw/intro/utility_cdrom/25245.html
[2] http://www.alcohol-soft.com/

Read Full Post »

主要的改善

  • New processor support (e.g., Core Duo) for code generation and profiling
  • Performance and scale improvements in Team Foundation Server
  • Team Foundation Server integration with Excel 2007 and Project 2007
  • Tool support for occasionally connected devices and SQL Server Compact Edition
  • Additional support for project file based Web applications
  • Windows Embedded 6.0 platform and tools support

相關連結:
[1] Microsoft Visual Studio 2005 Service Pack 1
[2] http://support.microsoft.com/?kbid=928957
[3] http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx

Read Full Post »

Flex2 製作的類比時鐘

終於用 Flex 完成一個簡單的類比時鐘…

測試網址:http://sisimi.pchome.googlepages.com/demo.html

  

 

  

Read Full Post »

下載頁面:Microsoft Visual Studio 2005 IDE Enhancements

功能:

Source Code Outliner : The Source Outliner tool is a Visual Studio extension that provides a tree view of your source code’s types and members and lets you quickly navigate to them inside the editor.

Visual C++ Code Snippets:The Visual C++ Code Snippets tool lets you insert snippets in your code by using a pop-up menu that contains programming keywords. VB.NET and C# languages have this functionality in Visual Studio 2005.

Indexed Find : The Indexed Find tool is a Visual Studio extension that uses the Microsoft Indexing Service to provide improved Search capabilities to the integrated development environment (IDE). It sends the results of a search to the Output Window.

Super Diff Utility: The Super Diff Find tool is a Visual Studio extension that compares text files. It uses color coding and graphics to show the difference between the files in deleted text (red), changed text (blue), inserted text (green).

Event Toaster Utility: The Event Toaster tool is a Visual Studio extension that notifies users about specific events within the Visual Studio IDE.

Read Full Post »

Older Posts »