第五部分—繪制mask shape
你只需要知道兩個特別的點。一個點創(chuàng)建一個空的movie clip,并在其中繪制一些東西。另一個點用另一個動畫來遮住一個movie clip。
好了,讓我們來編碼。
// 創(chuàng)建遮罩movie clip function drawMask(){ _root.stage.createEmptyMovieClip ("triangle", 1); with (_root.stage.triangle) { colors = [ 0xEFEFEF, 0xFFFFFF ]; alphas = [ 100, 100 ]; ratios = [ 0, 0xFF ]; matrix = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1 };
beginGradientFill( "linear", colors, alphas, ratios, matrix );
moveTo (_root.stage.d1._x, _root.stage.d1._y); lineTo (_root.stage.d2._x, _root.stage.d2._y); lineTo (_root.stage.d3._x, _root.stage.d3._y); lineTo (_root.stage.d4._x, _root.stage.d4._y); lineTo (_root.stage.d1._x, _root.stage.d1._y);
endFill(); //我認為不需要解釋這部分。你能在Flash MX的幫助或者參考中找到它們。我是從那里拷貝過來的。 // Pretty clear, right? (很清楚了吧?) }
setPage3(); //我們需要在鼠標移動時移動和旋轉(zhuǎn)movie clip Page3。這就是為什么在這里我們需要這個函數(shù)
_root.stage.page3.setMask(_root.stage.triangle); }
這是我們還需要知道的一個函數(shù):setMask。
就個人而言,我認為這個 setMask 函數(shù)在使用時有些小bug。它不象其他函數(shù)那么好用。 我要提醒你的另一件事是,在同一級腳本里你只能用setMask一次,意思就是,如果你想同時setMask movie clip Page2,你需要創(chuàng)建新的 mask movie clip,并在不同級的腳本中setMask。
很難理解嗎?好吧,在我的例子里,我把下一個setMask放在movie clip Page2里。
// 移動并旋轉(zhuǎn)movie clip Page3 function setPage3(){
_root.stage.page3._x = _root.stage.d1._x; _root.stage.page3._y = _root.stage.d1._y;
angle = _root.getAngle(_root.stage.stage.d1._x,_root.stage.stage.d1._y, _root.stage.stage.d4._x, _root.stage.stage.d4._y); _root.stage.page3._rotation = angle + 90; //為什么這里加了90度?我不知道。我只是發(fā)現(xiàn)加了這個之后數(shù)字才能很好地工作
_root.stage.page3._alpha = 100; //記得我們把movie clip Page3的透明度設(shè)置為0了嗎?現(xiàn)在我們需要把它變回去。因為movie clip Page2在Page3的下一層。 }
在這一課程中多加一條編碼。 在movie clip “Stage”中:
onClipEvent (enterFrame) { _root.startSlip(); }
這一段代碼使 Flash 一直檢查鼠標的位置。
出處:5D多媒體
責(zé)任編輯:qhwa
上一頁 第四部分-其他三個點 下一頁 第六部分-在Page2中繪制 mask shape
◎進入論壇Flash專欄版塊參加討論
|