2010-06-10 43 views
6

Sự khác nhau giữa flex mxml và as3 là gì.Sự khác nhau giữa flex mxml và actionscript-3

+1

Điều đó giống như yêu cầu sự khác biệt giữa Windows và Microsoft Office. – Matchu

+2

@Matchu, không hề. Nó giống như hỏi về ASPX vs C#. –

+1

@Sam - vâng, có lẽ tôi không nên đưa ra những nhận xét bi đát nếu tôi không phải là người chuyên nghiệp với họ. Tôi coi AS3 là hệ thống, và MXML là một công cụ bên trong nó, nhưng tôi chỉ hầu như không biết những gì tôi đang nói về xD – Matchu

Trả lời

0

MXML là ngôn ngữ khai báo để xác định các yếu tố giao diện người dùng của các chế độ xem của bạn trong ứng dụng Flex. Bạn cũng có thể khai báo một số phần tử không phải UI tồn tại và hỗ trợ trang, nhưng phần lớn nó chỉ được sử dụng cho các phần tử giao diện người dùng.

AS3 là ngôn ngữ lập trình được sử dụng để thêm tất cả logic và chức năng vào ứng dụng của bạn.

Hai kết nối được liên kết với nhau thông qua các sự kiện và ràng buộc dữ liệu.

0

xem mã mxml được biên soạn vào mã ActionScript và sau đó vào bytecode sau đó được thực hiện bởi các flash player

xem những gì xảy ra trong ActionScript được, bạn phải quyết định các phụ huynh và trẻ em, do đó, nó có được một chút phức tạp, u phải mã cho mỗi n tất cả mọi thứ,

ví dụ:

Canvas can=new Canvas(); 
can.percentHeight=100; 
can.percentWidth=100; 
can.addChild(new Button); 

nhưng trong trường hợp của mxml, u chỉ cần một thẻ

<Canvas height="100%" width="100%"><button></button></Canvas> 

vì vậy nó được dễ dàng hơn để làm việc trong mxml, nhưng có r một số hạn chế của mxml, vì vậy sớm hay muộn u phải sử dụng Actionscript, đó là những gì tất cả chúng ta làm hàng ngày

tôi hy vọng u có một số ý tưởng tc havw a gr8 day

+0

Tôi đã tự do định dạng mã của bạn - trong tương lai, chỉ cần chọn mã và nhấn Ctrl-K để định dạng mã. – Amarghosh

16

MXML là ngôn ngữ đánh dấu dựa trên XML để xác định thuận tiện giao diện người dùng và ràng buộc dữ liệu bằng cách sử dụng khung Flex. Các tệp MXML có thể bao gồm ActionScript bên trong các thẻ <mx:Script> - tương tự như cách bạn có thể có javascript trong tệp html.

Trình biên dịch Flex chuyển đổi đánh dấu MXML thành mã ActionScript-3 trước khi biên dịch nó thành SWF/SWC. Hầu hết những việc bạn làm trong MXML cũng có thể được thực hiện với ActionScript, nhưng nó sẽ lấy thêm nhiều dòng mã để làm điều đó.

An mxml tệp tạo lớp tác vụ có cùng tên mở rộng lớp tương ứng với thẻ gốc của tệp mxml. Ví dụ: mã sau trong MyCanvas.mxml tạo ra lớp MyCanvas mở rộng lớp Flex Canvas.

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="200" 
    creationComplete="init(event)"> 

    <mx:Label text="{someVar}" id="theLabel"/> 

    <mx:Script> 
    <![CDATA[ 

    [Bindable] 
    public var someVar:String; 

    public function init(e:Event):void 
    { 
     someVar = "Created"; 
    } 
    ]]> 
    <mx:Script> 
</mx:Canvas> 

Nó tương đương với MyCanvas.as có chứa:

package 
{ 
    import mx.containers.Canvas; 
    import mx.controls.Label; 
    import mx.binding.utils.BindingUtils; 

    [Bindable] 
    public var someVar:String; 

    [Bindable] 
    public var theLabel:Label; 

    public class MyCanvas extends Canvas 
    { 
    this.width = 200; 
    this.addEventListener(FlexEvent.CREATION_COMPLETE, init); 
    } 

    public function init(e:Event):void 
    { 
    someVar = "Created"; 
    } 

    override protected function createChildren():void 
    { 
    theLabel = new Label(); 
    addChild(theLabel); 
    BindingUtils.bindProperty(theLabel, "text", this, "someVar"); 
    } 
} 

Nếu bạn nhìn vào mã của bất kỳ lớp Flex (như UIComponent, Canvas vv), bạn sẽ thấy rằng tất cả họ đang .as tệp thay vì .mxml.

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