Vấn đề là nếu tôi thiết lập thuộc tính của một Sprite đối tượng .mask, đối tượng Sprite vẫn trả về nó đầy đủ chiều cao khi tôi gọi Sprite.height. Vì vậy, tôi đã tìm ra một cách đơn giản để khắc phục điều này sẽ là ghi đè lên getter tài sản.Tại sao Flash sử dụng toàn bộ chiều cao của vật thể được che mặt thay vì chỉ là khu vực hiển thị?
Bây giờ .. mặc dù mà làm việc, nếu tôi thêm đeo mặt nạ Sprite này đối tượng khác Sprite đối tượng, mới Sprite đối tượng sẽ báo cáo đó là chiều cao như đeo mặt nạ Sprite chiều cao của đối tượng mặc dù tôi đã ghi đè thuộc tính để chỉ trả lại chiều cao của khu vực hiển thị do mặt nạ. Vì vậy, có vẻ như Flash bỏ qua thực tế rằng không phải tất cả nội dung đều hiển thị nhưng vẫn tự động tăng chiều cao của đối tượng mới như không có mặt nạ trên mặt nạ Sprite.
Vì vậy, tôi tự hỏi nếu có một cách giải quyết vì vậy tôi có thể thêm đối tượng đeo mặt nạ này cho bất kỳ khác DisplayObject biết nó sẽ được thay đổi kích cỡ để chỉ những gì có thể nhìn thấy trong đối tượng đeo mặt nạ.
Cảm ơn bạn đã được trợ giúp.
EDIT
Dưới đây là một ví dụ mã ..
var content:Bitmap = new Bitmap(new BitmapData(50, 100, false, 0x000000));
var container:Sprite = new Sprite();
var mask:Bitmap = new Bitmap(new BitmapData(50, 50, false, 0x000000));
container.mask = mask;
container.addChild(content);
trace(container.height) // this should return 50 instead of 100
Tôi cũng đã thử một cái gì đó như thế này. Không làm việc. Đã cố gắng ghi đè getBounds quá, điều đó đã không làm điều đó. Tôi muốn được quan tâm để xem một giải pháp. – frankhermes
Có vấn đề khi thiết lập mặt nạ theo cách như vậy để có thể sử dụng chiều cao và chiều rộng cho mục đích không? if (sprite.mask) ... – Neoraptor
Tôi cần có thể thêm đối tượng đeo mặt nạ vào một đối tượng khác ** DisplayObject ** mà không thay đổi kích thước của nó thành cha mẹ mới với chiều cao đầy đủ của nội dung, thay vào đó chỉ thay đổi kích thước thành chiều cao của hiển thị Nội dung. Tôi đã thử **. ScrollRect ** cho bất cứ ai khác tự hỏi và vẫn trả về chiều cao đầy đủ. – xLite