2009-01-09 30 views
5

Tôi làm việc trên ứng dụng Flex tải tài nguyên Flash bên ngoài được tạo trong CS3. Tôi vừa đọc về cách tôi có thể sử dụng lớp Flex mx.managers.CursorManager để thay đổi con trỏ chuột một cách rõ ràng. Nhưng điều tôi muốn làm là đặt thuộc tính con trỏ chuột trên một số phần tử trong Flash SWF đã tải, do đó con trỏ chuyển qua phần tử này, con trỏ tự động thay đổi mà không cần phải trả lời các sự kiện chuột.Flash/Flex Cursors

Có thể không? Flash có hỗ trợ điều này trong DisplayObject hay gì đó không?

Dường như Flash SWF ghi đè tôi. Một số đối tượng sẽ tự động hiển thị con trỏ chuột bằng chuột và tôi không thể thấy cách tắt tính năng này trên DisplayObject?

Trả lời

4

Để thiết lập các "tay" con trỏ, càng sớm càng dao động chuột lên một yếu tố bạn cần phải xác định các đặc tính này:

<mx:VBox 
     useHandCursor="true" 
     mouseChildren="false" 
     buttonMode="true"> 

Tuy nhiên điều này chỉ làm cho con trỏ tay. Ngoài ra, hãy quan tâm đến thuộc tính bắt buộc mouseChildren. Bạn phải đặt giá trị này thành false để đạt được con trỏ cho tất cả các mục được chứa hoặc bạn phải chỉ định các thuộc tính useHandCursornútMode cho tất cả các thành phần. Tuy nhiên, tác dụng phụ của các thiết lập mouseChildren để sai là tất cả các sự kiện chuột (mouseover, mouseout, nhấp chuột ...) trên yếu tố con sẽ không còn hoạt động.

Trong trường hợp bạn muốn sử dụng một con trỏ khác nhau hơn so với con trỏ tay tôi sợ bạn chỉ có hai khả năng:

  • Thay con trỏ tay chuẩn bởi con trỏ
  • Sử dụng mouseovermouseOut sự kiện để đặt con trỏ theo chương trình.
2

Trong bất kỳ đối tượng nào kế thừa từ Sprite có thuộc tính buttonMode và useHandCursor đều đúng, bạn sẽ nhận được con trỏ theo mặc định khi bạn cuộn qua. Một số đối tượng làm điều này theo mặc định, chính xác; Button và LinkButton là những ví dụ bạn có thể nhận thấy. Chỉ cần đặt useHandCursor thành false trên bất kỳ thành phần nào trong số này sẽ vô hiệu hóa con trỏ tay một cách dễ dàng, ngay cả khi thuộc tính buttonMode của nó (có trách nhiệm gửi các sự kiện nhấp chuột) được đặt thành true.

Nếu bạn muốn đặt con trỏ của mình thành bất kỳ thứ gì khác trên chuộtTuy nhiên, bạn sẽ phải trả lời các sự kiện chuột; không có cách nào xung quanh đó. Tùy thuộc vào mục tiêu thiết kế của bạn, bạn có thể phá vỡ công việc đó bằng cách nào đó, có thể bằng cách kế thừa từ một số đối tượng khác và sau đó ghi đè hành vi mặc định của nó, nhưng ở dạng nào đó hoặc khác, thời gian chạy cần biết bạn muốn xử lý các sự kiện chuột đó.

Các vấn đề liên quan