2011-08-05 49 views
1

我目前對一組火花表單元素使用數據綁定,並想知道我綁定的數據類是否髒。簡單的方法來判斷數據是否髒

可能如果spark「Form」元素觸發一個變化事件,並且被一個spark「表單」捕獲,那麼該變化事件會很好。然後,我可以添加一個事件偵聽器到表單。但我沒有看到這樣的事情。

因此,除了原始數據類的副本比較綁定的數據類或添加一個變化事件給每個窗體元素,捕捉事件,什麼是會心一類對象的一種簡單的方法有哪些變化?

回答

1

將TextInput或其他任何輸入元素擴展到表單中,然後在組件中創建complete註冊更改事件的偵聽器,處理程序發送冒泡事件,然後在包含表單使用您的自定義元素,並通過AS3將偵聽器添加到您分派的事件的表單中,並停止它在此時的傳播。

否則我想改變處理器的每個你的第二個解決方案將不會太差。如果你有很多的表單元素,或者是動態的,你可以寫,通過表格的形式項步驟,並檢查自己的孩子,那麼你只需要編寫與每個類類型涉及開關功能(可以使用http://www.actionscriptdeveloper.co.uk/getting-the-class-of-an-object-in-as3/on每個子元素確定它是什麼類型,然後如果它是一個TextInput或任何註冊適當的事件來調用你常用的函數,只要確保它有一個通用的事件,因爲它的參數,因爲所有其他事件將是子類物)。

所以,據我所知有聽從ArrayCollection的或其它包裝的ListCollectionView數據結構的變化對基礎數據沒有簡單的方法。部分問題是添加集合的元素不需要實現任何類型的接口以允許註冊監聽器。也就是說,數據元素不一定是事件派發器,將這些信息傳遞給列表的唯一方式是,如果數據元素在包含該元素的所有列表上都有句柄,並且它們將列表中的某些內容標記爲在設置任何屬性時指示「髒」。這些都可以在語言的限制範圍內實現,但不是開箱即用,因爲它們的用法可能有限,並且在其他情況下可能會不必要地膨脹ListCollectionView的CPU使用量。

+0

對不起了這麼久,我只是讓周圍理解這一切是如何工作。感謝你的回答。 – Shanimal

+0

沒有問題,完全忘記了曾經左右寫這個答案,貌似我是一個有點抽象爲您的問題很好表達,所以我想你有柔性的一個很好的理解了。無論如何,如果你還沒有理解我在這裏寫的東西,或者想讓我重新說出/詳細說明,隨時問。 – shaunhusain

相關問題