Thanh Dương xin chào

6 khách và 0 thành viên

Ảnh ngẫu nhiên

BannerHongAnh.swf 270.jpg Mungxuan.swf Happy_new_year.swf _NGUOI_THAY__NHAT_HUY.swf 01_TIENG_HAT_TU_TP_HO_CHI_MINH.swf Cover201115.jpg Donghosocogiay2chuden.swf Donghosocogiay2chutrang.swf Donghosocogiay12chutrang.swf Donghoso12.swf Donghoso21.swf Donghoso2.swf Donghoso1.swf Donghosocogiay1.swf Donghosocogiay.swf Donghoso.swf Clock_LienBich.swf Ad_cadao.swf Videoplayback_.flv

Tài nguyên dạy học

Điều tra ý kiến

Bạn thấy trang này như thế nào?
Đẹp
Đơn điệu
Bình thường
Ý kiến khác

Sắp xếp dữ liệu

Nhúng mã HTML

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • thống kê truy cập

    free counters
    Gốc > Những vấn đề về CNTT > Bài viết về Flash >

    Actions Script 2.0 - Cấu trúc cơ bản

    Như đã từng được đề cập trong những bài trước, Flash cung cấp cho người dùng 2 cách sử dụng: dùng các công cụ tiện ích có sẵn của flash hoặc lập trình bằng ngôn ngữ actionscript (mà thường là phải phối hợp cả 2).

    Bài học dưới đây chỉ là bài vở lòng đối với giới lập trình nhưng lại khá mới mẻ với các nhà đồ họa, vốn chỉ chuyên về hình ảnh và màu sắc. Thế nhưng nếu bỏ chút công sức tìm hiểu về action script, bạn sẽ có được khả năng gần như vô hạn trong thế giới hiệu ứng tương tác kỳ thú của Flash...Bạn cũng đừng lo lắng quá vì các thí dụ minh họa trong bài là các đoạn code đơn giản, dễ hiểu và chạy được ngay khi nhập vào action panel.

    Thực ra có nhiều phần mềm đồ họa hổ trợ thêm ngôn ngữ lập trình để người sử dụng có thể tham gia viết lệnh, tạo thêm cho mình công cụ, tiện ích nhằm đáp ứng riêng cho 1 nhu cầu nào đó như trong AutoCad thì có Autolist, trong 3Dsmax có Maxscript...tương tự như là Macro trong word và excel vậy. Tuy nhiên so với những phần mềm trên thì ngôn ngữ action script trong Flash quan trọng hơn nhiều, nó đóng 1 vai trò thiết yếu tạo nên thế mạnh riêng cho Flash, đó là tính TƯƠNG TÁC. Thử đơn cử 1 vài ví dụ có actionScript tham gia như sau:

    - Các trình ứng dụng web như: form login, giao tiếp với các cơ sở dữ liệu...
    - Tạo các ứng dụng tương tác cao như các ứng dụng về game, thiệp..
    - Tạo các họat cảnh 3D: Trong các đoạn quảng cáo, banner..
    - Tải file động: load và unload các file nằm ngoài (external data) vào flash
    - Biên dịch hồ sơ XML: Tương tác máy chủ và máy khách
    Tuy nhiên trong khuôn khổ học phần này chúng ta chỉ nên xem qua các cấu trúc cơ bản để kết hợp và xử lý các công cụ trực quan của flash và các dòng lệnh đơn giản actionscript. việc nghiên cứu sâu hơn nên dành cho các khóa học nâng cao sau này khi chúng ta đã có sự chuẩn bị và nhiều thời gian hơn.

    A. Đặc điểm:

    - Case Sensitivity: Flash có phân biệt chữ Hoa, chữ thường. Vì thế tên biến "Name" và "name" sẽ là 2 tên biến riêng biệt.
    - OOP: Theo hướng lập trình hướng đối tượng kiểu như Java
    - Version mới nhất hiện nay là ActionScript 2.0
    Tiêu chuẩn viết lệnh là: ngắn gọn, dễ hiểu và ít tốn tài nguyên máy (về thời gian..).

    B.

    C. Từ khóa (Key word):

             
      break (ngắt lệnh) case (trong cấu trúc switch) class (lớp) continue
      default (lệnh mặc định) delete dynamic (kiểu dữ liệu dynamic) else (trong câu điều kiện if..else)
      extends (kiểu lớp kế thừa) for (vòng lặp for) function (hàm) get
      if (câu điều kiện if) implements import (import thư viên) in (Trong hàm for)
      instanceof interface intrinsic new (khai báo 1 intance của class)
      private (kiểu dữ liệu private) public (kiểu dữ liệu public) return (kiểu hàm trả về 1 giá trị) set
      static (kiểu dữ liệu static) switch (cấu trúc chia từng trường hợp) this (chỉ đối tượng hiện hành) typeof
      var (khai báo biến) void (kiểu hàm không trả về giá trị) while (vòng lặp while) with (cấu trúc gom thuộc tính )
             

    note Như vậy để tránh cho actionscript "hiểu nhầm", chúng ta không được khai báo tên biến trùng với từ khoá.

    D. Cú pháp (Syntax)

    1. Dấu chấm_Dot (.):  - Gán phương thức: my_mc.onRelease=function(){}

    - Đường dẫn: _root.clip1_mc.clip2_mc. gotoAndStop(2)
    - Sở hữu, thuộc tính: my_mc._width; chiều ngang movieClip "my_mc"

    2. Dấu chấm phẩy_Semicolons (;): là dấu kết thúc 1 câu lệnh (như dấu chấm câu).

    3. Dấu ngoặc móc_Curly braces ({}): Mở đầu và kết thúc 1 hàm hay 1 cấu trúc có nhiều dòng lệnh.

    4. Dấu ngoặc đơn_Parentheses (()): Thường là phần khai báo tham số cho 1 hàm, function myFunction (x,y,z){your code}

    5. Dấu 2 gạch xiên (//, /*...*/): Cho phép người dùng thêm dòng chú thích, minh họa chương trình. Flash sẽ bỏ qua khi chạy chương trình. Lợi dụng tính chất này, ta có thể tạm thời vô hiệu hóa 1 đoạn lệnh nào đó khi kiểm tra từng cụm lệnh:
    Tạo 1 dòng chú thích: đặt ký hiệu // ở đầu câu
    Tạo 1 cụm nhiều dòng chú thích: khóa đầu và đuôi cụm bằng /* và */

    E. Toán tử (Operators)

    1. Toán tử số (Numeric Operators):

     

    Toán tử  ý nghĩa Ví dụ Kết quả
    + -  Cộng / Trừ Number(2) + Number (4)   6
    * /  Nhân /  Chia 2*3   6
    %    Modulo (số dư của phép chia) 7%4   3
    ++ --  Tăng / Giảm 5++ / ++5   5 / 6
    total = (Number(4) + Number(2*5))%3 lấy số dư của  (4 + 2*5) chia 3   2

    2. Toán tử so sánh (Comparison Operators): toán tử này thường sử dụng cho kiểu dữ liệu Boolean

     

    Toán tử  ý nghĩa Ví dụ Kết quả
    > <  Lớn hơn / Nhỏ hơn   true/ false
    >= <=  Lớn hơn/ nhỏ hơn hoặc bằng   true/ false

    note Trong các toán tử +, -, <, >, <=, >=, =, <> các giá trị (x) kiểu Number luôn viết ở dạng Number(x)
    3. Toán tử luận lý (Logical Operators): toán tử này thường sử dụng cho kiểu dữ liệu Boolean

     

    Toán tử  ý nghĩa Ví dụ Kết quả
    &&  và

    var x:Number=5;
    if(x>0&&x<10) st=true;
    trace(st);

      true
    ||  hoặc

    var x:Number = 9;
    var start:Boolean = false;
    if ((x>25) || (start)) trace("OR test passed");

      OR test passed
    !  phủ định

    var happy:Boolean = false;
    if (!happy) trace("don’t worry, be happy"); 

      don't worry, be happy

    4. Toán tử tăng giảm (Bitwise Operators): toán tử này thường sử dụng cho kiểu dữ liệu Boolean

     

    Toán tử  ý nghĩa Ví dụ Kết quả
    &  AND   true
    |  OR   false
    ^  XOR    
    ~  NOT    
    <<  Shift left    
    >>  Shift right    
    >>>  Shift right zero fill    

    5. Toán tử tương đương (Equality Operators): toán tử này thường sử dụng cho kiểu dữ liệu Boolean

     

    Toán tử  ý nghĩa Ví dụ Kết quả
    == !=  Equality /  Inequality

    var a:String = "5", b:Number = 5;
    if (a == b) trace("right");

    else trace("wrong");

    right
    === !==  Strict equality/ Strict inequality

    var a:String = "5", b:Number = 5;
    if (a === b) trace("right");

    else trace("wrong"); 

    wrong

    Kiểu toán tử này thuờng thấy trong các form log in kiểm tra username và password
    6. Toán tử gán (Assignment Operators):

     

    Toán tử  ý nghĩa Ví dụ Kết quả
    =  gán x= 5 + 3 8
    += -=  Strict equality x +=2
    *= /=  Inequality x *=2  
    %=  Strict inequality 7 %=2  
    <<= >>=      
    >>>=      
    ^=      
    |=      
    &=      

    var x:Number= 15;
    var y:Number = x;
    var x:Number = 30;
    trace ("x="+x);
    trace ("y="+y);
    //output: x=30, y=15

    F. CẤU TRÚC CƠ BẢN

    With: là hàm gom nhiều dòng thuộc tính hoặc của 1 movieClip vào 1 cấu trúc như hàm tellTarget
    Các cụm lệnh sau là tương đương

    ball_mc._x = 50;
    ball_mc._y = 100;
    ball_mc.gotoAndStop(3);

     

    with (ball_mc) {
      _x = 50;
      _y = 100;
      gotoAndStop(3);
    }

     

    tellTarget ("ball_mc") {
      _x = 50;
      _y = 100;
      gotoAndStop(3);
    }

    function polar(r) {
    var a, x, y: Number;
    with (Math) {
    a = PI * r * r;
    x = r * cos(PI);
    y = r * sin(PI/2);
    }
    trace("area = "+a+"; x = "+x+"; y = "+y);
    }
    trace(polar(3));

    2. Câu điều kiện (conditions): Nếu...thì....
    Các cấu trúc sau là tương đương

    ?   if   if...else

    var x:Number = 5;

    var y:Number = 10;
    var z:Number = (x < 6) ? x: y;
    trace (z);
    //5

     

    var x:Number = 5;

    var y:Number = 10;

    var z:Number;
    if (x<6) z=x;
    if (x>=6) z=y;
    trace (z);
    //5

     

    var x:Number = 5;

    var y:Number = 10;

    var z:Number;
    if (x<6) z=x
    else z=y;
    trace (z);
    //5

    Giải thích: Nếu x < 6 thì z = x, kết quả là 5, nếu không thì z = y, kết quả là 10. Kết quả thí vụ là 5
       
    Ví dụ 1: Button 2 trạng thái on/off
    Trong keyframe 1 của main timeline ta nhập dòng code như sau

    switch_mc.onRelease = function(){
    if (this._currentframe==1) this.gotoAndStop(2)
    else this.gotoAndStop(1);
    }

    //Nếu button đang ở trạng thái "off" thì chuyển sang "on" và ngược lại

    Trong keyframe 1 của movieClip "switch_mc" nhập code: stop(); và tạo 2 hình button khác nhau trong keyframe 1 và 2 của  switch_mc

    2. Vòng lặp (loop)

    for   do...while

    for(init; condition; next) {
      statement(s);
    }

     

    do {
       statement(s)
    } while (
    condition)

                 
    for (liệt kê)   for (Cộng dồn)   while   do..while

    for (var i:Number=0; i<5; i++){
    trace(i);
    }
    //1,2,3,4

     

    var sum:Number = 0;
    for (var:Number i=1; i<=5; i++){
    sum = sum + i;
    trace(sum);
    }
    //1,3,6,0,15

     

    var x:Number = 0;
    while (x<5){
    trace(x);
    x++;
    };
    //1,2,3,4

     

    var x:Number = 0;
    do {
        trace(x);
        x++;
    } while (x<5);
    //1,2,3,4

    switch

    switch (number) {
    case 1:
    trace ("case 1 tested true");
    break;
    case 2:
    trace ("case 2 tested true");
    break;
    case 3:
    trace ("case 3 tested true");
    break;
    default:
    trace ("no case tested true")
    }

    Lệnh kiểm tra số ngày trong tháng    lệnh di chuyển movie clip bằng bàn phím
         

    var month:Number=3;
    switch (month) {
         case 1,3,5,7,8,10,12: trace ("có 31 ngay");
                               break;
         case 2: trace ("co 29 ngay");
                 break;
         case 4,6,9,11: trace ("co 30 ngay");
                        break;
         default: trace ("chua chon thang")
    }

     

    move_mc.onClipEvent (keyDown) {
       switch (Key.getCode()) {
           case (Key.RIGHT) : this._x += 3;
                              break;
           case (Key.LEFT) : this._x -= 3;
                             break;
           case (Key.UP) : this._y -= 3;
                           break;
           case (Key.DOWN) : this._y += 3;
                             break;
           default : trace("nhan phim mui ten");
           }
    }

    G. Hàm (function):

    Hàm là khối lệnh có vai trò như 1 công thức lập sẵn được sử dụng nhiều lần trong chương trình. Hàm xử lý trên các tham số (Arguments) và trả về 1 giá trị (Hàm return) hay thực hiện 1 chức năng (Hàm void)
    Tạo hàm: từ khoá function
    Hàm return: Hàm tạo công thức tính toán
    Hàm voil: Hàm tạo lệnh
      Ví dụ 1:

    Hàm return
    (hàm tính toán, trả về một giá trị kết quả)
      Hàm Void
    (hàm chức năng, thực hiện 1 lệnh)
         

    function sum(a, b, c){
      return a + b + c;
    //trả về giá trị tổng 3 tham số

    }

    newValue = sum(4, 32, 78); //gọi hàm với 3 tham số cụ thể

    trace(newValue); // xuất kết quả ra output panel (114)

     

    function greet(name:String, age:Number):Void {
    trace("Ban " + name+ ", "+age+" tuoi");
    }
    greet("Steve", 23);
    //call function


     

     

    Ví dụ 2: hàm cộng thêm

    additionator = function(add_me) {
    var total:Number = 10 + add_me;
    trace(total);
    }
    additionator(4);

      Ví dụ 3: Kiểm tra giới tính để tiện xưng hô, chào hỏi...

    function showSalutation(lastName:String, gender:String):Void {
    if (gender == "F") {
    trace("Ms. "+lastName);
    } else {
    trace("Mr. "+lastName);
    }
    }
    //call function

    showSalutation("Smith", "F");

     

    Một số hàm thông dụng dựng sẵn trong Flash:
      stop();
      gotoAndPlay();
      gotoAndStop();
      nextFrame();
      trace();//xuất kết quả lệnh trong output panel
      round (); //làm tròn số
      getURL()

    Nhắn tin cho tác giả
    Đỗ Thanh Dương @ 22:13 28/10/2010
    Số lượt xem: 541
    Số lượt thích: 0 người
     
    Gửi ý kiến

    HỖ TRỢ QUẢN TRỊ WEBSITE

    Thay tên website / Chọn thư mục / Mở ra
    Giao diện Module Thư mục Thành viên Tài nguyên Xóa Code
    http://