2010-02-08 23 views

Trả lời

-1

Tất nhiên,

bạn có thể sử dụng lớp URLLoader để tải nó tại thời gian chạy:

var _loader:URLLoader; 
var request:URLRequest = new URLRequest("http://yourserver.com/graphic.ai"); 
var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, completeHandler); 
loader.load(request); 

    private function completeHandler(e:Event):void { 
     var content:DisplayObject = _e.target.content; 
     addChild(content); 
    } 

tôi đã không kiểm tra nó, nhưng tôi nghĩ rằng làm việc này!

+3

"_e.target.content" phải là "e.target.data". Tôi nghĩ bạn cũng cần phải định kiểu nó trước khi trình biên dịch cho phép bạn đặt nó vào một biến DisplayObject. Có lẽ bạn đang nghĩ về Loader thay vì URLLoader? Mã hiện tại sẽ không hoạt động vì Flash không biết loại dữ liệu nào vừa được tải (có thể là XML, dữ liệu nhị phân, PNG, v.v.) và do đó không thể chuyển đổi tệp AI thành DisplayObject vì nó không biết rằng dữ liệu được tải là một tệp AI. Tôi không chắc chắn Flash có thể chuyển đổi các tập tin AI tại thời gian chạy ở nơi đầu tiên. – Cameron

+0

Uh, bạn nói đúng. Nó phải là một Loader thay vì một URLLoader. Nhưng tôi không chắc chắn với các typecast, tôi sẽ kiểm tra nó sau ;-) – 23tux

1

Bạn có thể lưu dữ liệu vectơ theo định dạng XML như SVG (Illustrator hỗ trợ điều này), sau đó tải nó bằng cách sử dụng URLLoader, phân tích dữ liệu và vẽ nó vào đối tượng Hình dạng.

Có một vài phân tích cú pháp AS3 SVG có sẵn trên web: http://www.google.com/search?q=svg+as3

+0

Combo "AI-> SVG - load-> Flash" không phải là một biến thể tốt nhất. Xuất sang SVG luôn là khủng khiếp trong Illustrator. –

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