2009-02-26 31 views
5

Ví dụ, kịch bản MXML sau đính kèm một người biết lắng nghe để một lớp Button:Làm thế nào để mã MXML để đính kèm một người nghe đến một lớp ActionScript tùy chỉnh

<mx:Button id="STACK" label="OVERFLOW" click="doStuff()"/> 

Tôi có một lớp học kịch bản hành động tùy chỉnh mà cháy một sự kiện khi một giá trị được cập nhật và tôi muốn để có thể lắng nghe cho rằng sự kiện trong một lớp MXML:

ActionScript class:

public function set currentPage(newCurrentPage: Number) : void { 
    _currentPage = newCurrentPage; 

    dispatchEvent(new DataEvent(PAGE_CHANGED, true, false, _currentPage)); 
} 

và tôi muốn để có thể làm như sau trong M XML:

<myClass:Class <...> pageChanged="doMoreStuff()" /> 

Tôi làm như thế nào? Chúc mừng :)

+0

loại lớp học của bạn 'myClass' là gì? – dirkgently

+0

Tôi cho rằng nó sẽ cần phải mở rộng Canvas để có thể được hiển thị. Trong thực tế đây là một lớp 'trừu tượng' được mở rộng bởi các thành phần khác. –

Trả lời

8

Bạn phải khai báo các sự kiện với một thẻ siêu dữ liệu:

<mx:Metadata> 
[Event(name="pageChanged", type="full.type.name.of.DataEvent")] 
</mx:Metadata> 

Tên của sự kiện phải phù hợp với tên sự kiện (PAGE_CHANGED liên tục trong ví dụ của bạn).

Edit: nếu bạn đang viết các lớp trong ActionScript thay vì MXML, bạn có thể áp dụng các thẻ siêu dữ liệu trực tiếp đến lớp học của bạn:

[Event(name="pageChanged", type="full.type.name.of.DataEvent")] 
public class MyClass extends WhateverItExtends 
Các vấn đề liên quan