| 熱愛鑽研 |
 |
Ajax ActionScript
Flash Flash Lite Flex
Flash Remoting FlashCom
Director
Lingo PHP
Multiplayer Game
|
| 搜尋 |
 |
 |
|
 |
 |
| 應多使用Databinding Classes
|
(30-11-2003) |
 |
雖然Component v2提供了Databinding Panel,可以方便地、視覺化地控制Databinding,但我認為在製作大型應用程序時,系統中包含了很多Components,如果沒有良好的文檔記錄下,程序的維護是十分困難,往後開發人員難以追蹤那個Component跟那個Component有Databinding,這樣會構成一個不良編程習慣危機。因此,我習慣多用ActionScript編寫Databinding,讓Databinding過程根據系統的狀態而進行,在往後維護更容易追蹤。以下是一個非常簡單的Databinding例子:
NumberFormatter.as,在Databinding中作數據自定格式化:
class NumberFormatter {
// Format a Number, return a String
function format(rawValue) {
var returnValue;
var strArray = new Array('one', 'two', 'three');
var numArray = new Array(1, 2, 3);
returnValue = 0;
for (var i = 0; i < strArray.length; i++) {
if (rawValue == numArray[i]) {
returnValue = strArray[i];
break;
}
}
return returnValue;
}
}
databind_try.fla,包括一個NumericStepper和TextInput,NumericStepper改變時,TextInput會顯示NumericStepper的文字化數值(Library中要包括DataBindingClasses):
import mx.data.binding.*;
var x:NumberFormatter;
var customBinding = new Binding({component:stepper, property:"value", event:"change"}, {component:textInput, property:"text"}, {cls:mx.data.formatters.Custom, settings:{classname:"NumberFormatter"}});
[範例]
補充 Databinding Panel只對在Frame 1的Components有效,而且當Components由一個FLA Copy到另一個FLA時,Databinding的設定是不能Copy到另一個FLA!基於以上2點,我更加建議應多使用Databinding Classes。 |
| 本文章由luar發表。 |
補充說明一下好了...讓不知道的網友可以了解...
var x:NumberFormatter是為了讓編譯成swf時把NumberFormatter這個類別編譯進來,因為如果程式沒使用到該類別不會include進來
支持我寫個教程
目的:有兩個文本框,你在一個文本上打的字母會綁定到另外一個文本框裡面,也就是說你在一個文本框輸入字母, 另外一個文本框會出現相同的字母。
1. 首先選擇菜單欄的Window->Other Panels->Common libraries->Classes彈出library面板。
2. 從中拖入一個DataBingClasses到場景中, 然後刪除。這樣這個組件就保持到這個fla文件的庫裡面了。
3. 在場景中加入兩個TextInput組件, 一個名為src_txt,另一個名為dest_txt。src_txt為輸入框,dest_txt是展示文本框。
4. 在fla主時間軸第一幀加入如下代碼:
import mx.data.binding.*;
var src = new EndPoint();
src.component = src_txt;
src.property = "text";
src.event = "change";
var dest= new EndPoint();
dest.component = dest_txt;
dest.property = "text";
new Binding(src, dest);
5. 按Ctrl+Enter測試效果如圖:
假如你要實時測試數據綁定的情況,你可以在原來的代碼上加上:
_global.__dataLogger=new mx.data.binding.Log();
然後再測試,就會看到output窗口會彈出綁定的像下面那樣的信息。
11/17 12:28:14 src_txt: Data of property 'text' has changed. true.
11/17 12:28:14 Executing binding from src_txt:text:- to dest_txt:text:-
11/17 12:28:14 Assigning new value 'A' (String)
11/17 12:28:20 src_txt: Data of property 'text' has changed. true.
11/17 12:28:20 Executing binding from src_txt:text:- to dest_txt:text:-
11/17 12:28:20 Assigning new value 'AO' (String)
我懷疑 FLash 是否適合開發大型應用程序?
首先,站長已經說了,發布時的時間是一個問題,如果需要測試,很耗時間!
然後是Flash Player 的運行,一般普通的PC運行運行Flash非常的吃力,尤其是在嵌套多個MC的時候,運行很吃力;
這些都給Flash的推廣帶來了一定的困難。
| |
|
 |
 |
| 同組文章 |
 |
|