26 Ví dụ cơ bản rất hữu ích cho các bạn mới học lập trình với flash

I.Thao tác với movieclip:
1.Tạo movieclip circle_mc khi trỏ chuột vào thì  thay đôi độ alpha (trong xuốt) xuống còn 60% khi đưa chuột ra khỏi nó thì nó trở lại bình thường.

circle_mc.onRollOver = function() {
   this._alpha = 60;
};
circle_mc.onRollOut = function() {
   this._alpha = 100;
};

2.  Tạo một movieclip plane_mc chơi khi điều khiển movieclip play_mc bằng cách click. 

play_mc.onRelease = function() {
   plane_mc.play();
};


3. Định nghĩa movieclip plane_mc chơi tại một frame và khi click chuột vào movieclip này.
function flyPlane() {
   plane_mc.play();
}
play_mc.onRelease = flyPlane;


4.Hoặc có thể cho nó chơi trong một phạm vi cố định.

function flyPlane() {
   if (plane_mc._currentframe == 1) {
      plane_mc.play();
   }
}
play_mc.onRelease = flyPlane;
 

5.Hoặc cho  movieclip circle_mc bề mặt có độ alphal trong xuốt ở 60% khi di chuột lên nó và trở lại 100% khi di chuột ra ngoài.

circle_mc.onRollOver = function() {
   this.onEnterFrame = function() {
      if (this._alpha > 60) {
         this._alpha -= 10;
      } else {
         delete this.onEnterFrame;
      }
   };
};
circle_mc.onRollOut = function() {
   this._alpha = 100;
};
6.Khai báo một biến có tên  tìm kiếm dạng Boolean và thiết lập giá trị ban đầu để dạng false
 
var found:Boolean = false;
II.
7.Tạo một  movieclip bee_mc và đặt giá trị true
bee_mc.flying = true;
8.Tạo một thuộc tính cho movieclip associatedClip của movieclip c0 khi ở một điểm box0 và sử dụng nó khi click chuột vào box0 .

function unhide() {
   this.associatedClip._visible = true;
}
c0.associatedClip = box0;
c0.onRelease = unhide;

9.Tạo một điều khiển tương tự movieclips, c0 - c4,  và sử dụng chúng mỗi khi click chuột.

function unhide() {
   this.associatedClip._visible = true;
}
for (var i=0; i < 5; i++) {
   this["c"+i].associatedClip = this["box"+i];
   this["c"+i].onRelease = unhide;
}


10.Hoặc có thể chó hiển thị text khi click chuột vào chúng. 

var controlInfo:Array = [
   "wake up", 
   "eat lunch", 
   "go home", 
   "walk the dog"
   ];
function showText() {
   page_txt.text = this.mytext;
}
for (var i=0; i < 5; i++) {
   this["c"+i].mytext = controlInfo[i];
   this["c"+i].onRelease = showText;
}


11. Hoặc sử dụng một mảng để điều khiển các movieclip, cho text hiển thị bên dưới và sử dụng con trỏ vào movieclip hình ảnh khi click chuột.

var controlInfo:Array = [
   {ctl:wakeup_mc, text:"wake up", pic:alarm_mc},
   {ctl:eatlunch_mc, text:"eat lunch", pic:lunch_mc},
   {ctl:gohome_mc, text:"go home", pic:door_mc},
   {ctl:walkdog_mc, text:"walk the dog", pic:dog_mc},
   {ctl:sleep_mc, text:"fall asleep", pic:bed_mc}
   ];
function onClick() {
   page_txt.text = this.mytext;
   this.myclip._alpha = 50;
}
for (var i=0; i < controlInfo.length; i++) {
   controlInfo[i].ctl.mytext = controlInfo[i].text;
   controlInfo[i].ctl.myclip = controlInfo[i].pic
   controlInfo[i].ctl.onRelease = onClick;
}


12. Tương tự ví dụ như trên, bằng cách sử dụng chuỗi ký tự đại diện của movieclips, thay vì con trỏ đến movieclips thực tế trong mảng. Trong ví dụ này, movieclips hình ảnh ở bên trong MovieClip frame_mc.

var cInfo:Array = [
   {ctl:"wakeup_mc", text:"wake up", pic:"alarm_mc"},
   {ctl:"eatlunch_mc", text:"eat lunch", pic:"lunch_mc"},
   {ctl:"gohome_mc", text:"go home", pic:"door_mc"},
   {ctl:"walkdog_mc", text:"walk the dog", pic:"dog_mc"},
   {ctl:"sleep_mc", text:"fall asleep", pic:"bed_mc"}
   ];
function onClick() {
   page_txt.text = this.mytext;
   this.myclip._alpha = 50;
}
for (var i=0; i < cInfo.length; i++) {
   this[cInfo[i].ctl].mytext = cInfo[i].text;
   this[cInfo[i].ctl].myclip = frame_mc[cInfo[i].pic];
   this[cInfo[i].ctl].onRelease = onClick;
}


III.Motion:
13. Di chuyển movieclip ball ngang trên stage:


var xspeed:Number = 5;
function moveRight() {
   this._x += xspeed;
}    
ball.onEnterFrame = moveRight;

14.Ta cho quả bóng di chuyển thêm một số chức năng khác như tốc đố, mặc định ví trí ban đầu ...

var xspeed:Number = 5;
var leftbound:Number = 0;
var rightbound:Number = 300;

function moveRightLeft() {
   this._x += xspeed;
   if (this._x > rightbound - this._width) {
      this._x = rightbound - this._width;
      xspeed *= -1;
   } else if (this._x < leftbound) {
      this._x = leftbound;
      xspeed *= -1;
   }
}

ball.onEnterFrame = moveRightLeft;


15.Di chuyển trong một khoảng và đặt random nó


var xspeed:Number;
var leftbound:Number = 0;
var rightbound:Number = 300;

function randomBetween(a:Number, b:Number):Number {
   return a + Math.floor(Math.random()*(b-a+1));
}

function moveRightLeftRandom() {
   this._x += xspeed;
   if (this._x > rightbound - this._width) {
      this._x = rightbound - this._width;
      xspeed = -1 * randomBetween(5, 10);
   } else if (this._x < leftbound) {
      this._x = leftbound;
      xspeed = randomBetween(5, 10);
   }
}

xspeed = randomBetween(5, 10);
ball.onEnterFrame = moveRightLeftRandom;

16.Giữ nó khi di chuyển và cho nó di chuyển cố đinh trong một hình chữ nhât cỡ 300x200 tại toạ đố (0,0)
 
var bounds:Object = {L:0, T:0, R:300, B:200};
var xspeed:Number = 5;
var yspeed:Number = 5;

function moveInBounds() {
   this._x += xspeed;
   this._y += yspeed;
   if (this._x > bounds.R - this._width) {
      this._x = bounds.R - this._width;
      xspeed = -xspeed;
   } else if (this._x < bounds.L) {
      this._x = bounds.L;
      xspeed = -xspeed;
   } else if (this._y > bounds.B - this._height) {
      this._y = bounds.B - this._height;
      yspeed = -yspeed;
   } else if (this._y < bounds.T) {
      this._y = bounds.T;
      yspeed = -yspeed;
   }
}

ball.onEnterFrame = moveInBounds;


IV.Drag(kéo khi di giữ chuột) và test va chạm:
17. Cho MovieClip dragger_mc Drag bên trong hộp 200 x 100 trên stage với góc trái 50, cạnh phải và xuống 40.
dragger_mc.onPress = function() {
   this.startDrag(false, 50, 40, 250, 140);
};

18.Cho movieclip dragger_mc dừng drag khi click.

dragger_mc.onRelease = 
dragger_mc.onReleaseOutside = function() {
   this.stopDrag();
};

19.Hoặc thêm vài chức năng khác như sau:.
dragger_mc.onPress = function() {
   this.startDrag();
}
dragger_mc.onRelease =
dragger_mc.onReleaseOutside = function() {
   this.stopDrag();
   if (this.hitTest(target_mc)) {
      target_mc._alpha = 50;
   } else {
      target_mc._alpha = 100;
   }
};

V.Load một file mở rộng ".JPG" hoặc ".SWF":
20. Load "somepic.jpg" tới movieclip holder_mc (trên stage), hiện quá trình đang sử lý(bar_mc, on stage) trong xuốt quá trình load, và cỡ ảnh jpg tới 50% trước khi hiển thị nó.

var loader:MovieClipLoader = new MovieClipLoader();
function onLoadProgress(_mc, loaded, total) {
   var pct:Number = Math.round(loaded / total * 100);
   bar_mc._xscale = pct;
};
function onLoadInit(_mc) {
   bar_mc._visible = false;
   _mc._xscale = _mc._yscale = 50;
   _mc._visible = true;
};
loader.addListener(this);
bar_mc._xscale = 0;
holder_mc._visible = false;
loader.loadClip("somepic.jpg", holder_mc);


21. Load "mymovie.swf" trong folder movies tới movieclip player_mc (on stage), ...

var loader:MovieClipLoader = new MovieClipLoader();
function onLoadProgress(_mc, loaded, total) {
   var pct:Number = Math.round(loaded / total * 100);
   pct_txt.text = pct + "%";
};
function onLoadInit(_mc) {
   pct_txt.text = "";
   _mc.init();
};
loader.addListener(this);
loader.loadClip("movies/mymovie.swf", player_mc);

22.Load "movie.swf" tới movieclip player_mc (on stage),.... Cho file swf stop tại frame 1 và sẽ chơi khi load


var loader:MovieClipLoader = new MovieClipLoader();
var lis:Object = {};
lis.onLoadProgress = function(_mc, loaded, total) {
   var pct:Number = Math.round(loaded / total * 100);
   preloader_mc.gotoAndStop(pct);
};
lis.onLoadInit = function(_mc) {
   preloader_mc._visible = false;
   _mc.play();
};
loader.addListener(lis);
loader.loadClip("movie.swf", player_mc);

VI. Đọc file text từ web server:
23.Đọc nội dung của môtị file text unicode (utf-8 encoded) và hiển thị dưới dạng động

var lv:LoadVars = new LoadVars();

lv.onData = function(thetext:String) {
   page_txt.text = thetext;
}

lv.load("thetextfile.txt"); 
24.Đọc nội dung của một &var=value&  file text đã định dạng giống như sau:

&name0=fuschia&val0=DE11E6&
&name1=limegreen&val1=00FF00&
vv..

Và lưu nội dung dưới một mảng paintcolors, chuyển đổi giá trị màu từ một mảng tới một số để sử dụng lại sau.


var lv:LoadVars = new LoadVars();
var paintcolors:Array = [];

lv.onLoad = function(success:Boolean) {
   if (success) {
      var i:Number=0;
      while (this["name"+i]!=undefined) {
         paintcolors.push({ 
            myname:this["name"+i], 
            mycolor:parseInt(this["val"+i], 16)
         });
         i++;
      }
   } else {
      trace('problem reading file');
   }
};

lv.load("paintcolors.txt");  


25.Tương tự ví dụ trên, bằng cách sử dụng mảng màu của movideclips(swatch0, swatch1, vv) trên stage. Mỗi nội dung của một movieclip "dot" và một textfield "name".


var lv:LoadVars = new LoadVars();
var paintcolors:Array = [];

function setcolors() {
   var c:Color;
   for (var i=0; i < paintcolors.length; i++) {
      c = new Color(this["swatch"+i].dot);
      c.setRGB(paintcolors[i].mycolor);
      this["swatch"+i].name.text = paintcolors[i].myname;
   }
}

lv.onLoad = function(success:Boolean) {
   if (success) {
      var i:Number=0;
      while (this["name"+i]!=undefined) {
         paintcolors.push({ 
            myname:this["name"+i], 
            mycolor:parseInt(this["val"+i], 16)
         });
         i++;
      }
      setcolors();
   } else {
      trace('problem reading file');
   }
};

lv.load("paintcolors.txt");  

VII.Đọc một file XML từ web server:
26.Đọc một file XML có dạng như sau:



  
  
 


và tạo một bảng màu (swatch0, swatch1, ...vv) sử dụng trên stage .Mỗi nội dung của một movieclip "dot" vàa textfield "name" (như ví dụ dưới đây):

var colorxml:XML = new XML();
var paintcolors:Array = [];

function setcolors() {
   var c:Color;
   for (var i=0; i < paintcolors.length; i++) {
      c = new Color(this["swatch"+i].dot);
      c.setRGB(paintcolors[i].mycolor);
      this["swatch"+i].name.text = paintcolors[i].myname;
   }
}

colorxml.onLoad = function(success:Boolean) {
   if (success) {
      var colors:Array = this.firstChild.childNodes;
      for (var i=0; i < colors.length; i++) {
         paintcolors.push({ 
            myname:colors[i].attributes.name,
            mycolor:parseInt(colors[i].attributes.val, 16)
         });
      }
      setcolors();
   } else {
      trace('problem reading file');
   }
};

colorxml.ignoreWhite = true;
colorxml.load("paintcolors.xml");