2009-03-31 22 views
15

Trong Flash, đối tượng BitmapData có thể được sử dụng để lưu trữ bitmap trong RAM, sau đó bạn có thể vẽ chúng vào MovieClip bằng cách sử dụng phương thức beginBitmapFill().Làm thế nào để bạn tải một tệp bitmap vào một đối tượng BitmapData?

Làm cách nào để bạn tải tệp bitmap ngoài (.jpg) vào đối tượng BitmapData?

Thậm chí mã AS3 sẽ hữu ích.

+2

Tôi không thực sự hiểu tại sao bạn lấy câu trả lời của riêng mình thay vì câu trả lời của Cotton. –

+0

Vì tôi muốn có giải pháp AS2. Bông là AS3. –

Trả lời

41

đang AS3 để tải một PNG và "nhận" BitmapData nó

var bitmapData:BitmapData; 

var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
    loader.load(new URLRequest("../lib/img.png")); 

function onComplete (event:Event):void 
{ 
    bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData; 
} 
+0

Chỉ cần lưu ý. Bạn không thể sử dụng Trình tải URL cho số – Nande

+0

Một lưu ý khác. Trình tải thêm một số thông tin vào bitmap, vì vậy hãy cố gắng thay đổi một số thuộc tính như 'name' trực tiếp từ' event.target.content'. Nhưng khi OP tạo bitmap mới thì tốt. – Nande

5

Bạn phải tải tệp bên ngoài (.jpg) vào MovieClip và đợi tải.

Sau đó chụp nhanh MovieClip chứa tệp ngoài, vào đối tượng BitmapData của bạn.

myBitmap = new BitmapData(myMC._width, myMC._height,true,0x00FFFFFF) 

myBitmap.draw(myMC) 

Xem Introducing the Image API in Flash 8.

1

GUI giai đoạn:
tải hình ảnh vào thư viện (file -> import -> library).
Trong trình duyệt thư viện, nhấp chuột phải và nhấn "thuộc tính", hãy lưu ý rằng đó là điểm X của Y.
Mở tab "nâng cao".
Chọn "xuất cho tập lệnh hành động". Xuất dưới dạng myImg

Actionscript giai đoạn:

import flash.display.BitmapData; 
import flash.display.Bitmap; //needed? 
.......... 
var myPic:BitmapData = new myImg(X,Y); 
9

đề cập đến các bài viết đầu tiên bằng bông.

Trên thực tế mỗi hình ảnh là một bitmap vì vậy tất cả bạn cần làm là

bitmapData = event.target.content.bitmapData 

thay vì

bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData; 
+0

Không, 'LoaderInfo.content' là một DisplayObject. Tất cả các Bitmap đều là DisplayObject, nhưng không phải tất cả các DisplayObject đều là các ảnh bitmap, do đó là các diễn viên. Bằng cách loại bỏ các phôi, bạn đang làm việc xung quanh tính năng an toàn kiểu của ngôn ngữ ActionScript. – Spookbuster

6

lấy từ bông và sẽ, điều này sẽ hiển thị bitmap sau khi nó được nạp:

import flash.display.Bitmap; 
import flash.display.BitmapData; 

var bitmapData:BitmapData; 
var bmVis:Bitmap; 

var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
    loader.load(new URLRequest("put url here")); 

function onComplete (event:Event):void 
{ 
    trace("loaded!"); 
    bitmapData = event.target.content.bitmapData; 
    bmVis = new Bitmap(bitmapData); 
    this.addChild(bmVis); 
}