2007年12月28日 星期五

期末報告題目

我挑選的是Laszlo in 10 minutes裡Scripting的範例部分--Event Handlers
Scripting意思就是"事件",能夠借由"邏輯運算"來判斷事件真偽和類似If else的敘述,來達到"控制物件"的目地。
一些物件的特性都能輕易地改變、控制,所以我挑選這個令我雀喜的範例。

code:(replace'<'和'>'to'['和']')
[canvas]
[button onclick="vw.setWidth(200)"]Expand Width[/button]
[!--定義button,並設定事件:當按下button(Expand Width)時,改變id為vm的物件寬度為200 --] [button x="120" onclick="vw.setWidth(100)"]Reset[/button]
[!--定義button,並設定事件:當按下button(Reset)時,改變id為vm的物件寬度為100 --]
[view id="vw" y="30" width="100" height="100" ]
[!--定義一開始要show出來的物件(vm) --]
[!-- onwidth is sent anytime width is changed --]
[handler name="onwidth" ]
this.setAttribute('bgcolor', (this.width > 100 ? red : blue));
[!--利用handler裡的'onwidth'當物件(vm)改變寬度時,會有所動作。所以我們可利用邏輯運算來描述想要的改變:控制顏色(bgcolor)當此物件(vm)寬度大於100則顯示紅色,否則顯示藍色--]
[/handler]
[/view]
[/canvas]

[!-- Copyright 2006 - 2007 Laszlo Systems, Inc. All rights reserved. Use subject to license terms. --]
效果:


這個範例中有設定id名稱,也就是設定物件,雖然只有單一物件,但若擴及數個物件,並描述它們之間的互動關係,那我想這個物件導向的設計將會更有體會它的好處。
裡面還有button的onclick,也是事件的一種,能夠改變某一物件的狀態(此範例是width),不過這範例特別在於又透過onclick後的參考值當變數去啟動另一個事件(onwidth)以再改變(bgcolor),這種類似鏈子串聯起來的事件在動態網頁上伴演很重要的角色。
高中時曾玩過flash,做動態網頁去比賽,裡面的action script不外乎也是物件導向的設計,但它更結合各種向量變化、繪畫功能(例如顏色漸層),來提供更完整的物件運動。我個人是比較著迷於flash所做出來的華麗網頁,不過也是有缺點,無法像JaveScript還能夠結合HTML設計網頁。
感謝老師這學期的教學,讓自己學習到很多不一樣的知識,我很喜歡老師的課,沒有壓力,卻能夠學得比其他課來得更多。

1 則留言:

Yao Jen 提到...

這個範例提供程式上的挑戰,點選後動作令人好奇想去探究,的確是個好選擇。