欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

FLASH AS實現(xiàn)馬賽克效果_Flash教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:如何應(yīng)用Flash制作標(biāo)準(zhǔn)的loading?
前言:網(wǎng)絡(luò)中的swf影片是可以實現(xiàn)邊下載邊播放的,由于受到當(dāng)前網(wǎng)絡(luò)傳輸?shù)闹萍s,對于大容量的影片,這種實時播放并不理想。為避免受眾尷尬的等待,flash制作人員

動畫效果:

點擊這里下載源文件

  一般實現(xiàn)馬賽克有 2 種辦法, 采用的都是遍歷圖像上的像素, 對相隔一定范圍內(nèi)的像素填充同一顏色, 只不過采樣的顏色位置不同, 有選中心點的, 也有選范圍內(nèi)全部像素平均值的, 考慮到 flash 的效率問題, 這個是選擇中心點的, 可以省掉大量循環(huán)

  同時注重 stride 要 4 的倍數(shù), 不然的話.. 自己看吧. 哈哈(月光注:其實用2的倍數(shù)也就可以了)

import flash.display.BitmapData;
// 場景中擺個叫 img 的 mc 就 ok
var oldBmp:BitmapData = new BitmapData(img._width, img._height);
oldBmp.draw(img);
var newBmp:BitmapData = mosaic(oldBmp, 12);
var mc = createEmptyMovieClip("mc", 1);
mc.attachBitmap(newBmp, getNextHightestDepth());
mc._x = img._width;
function mosaic(bmp:BitmapData, stride:Number):BitmapData {
var startTime = getTimer();

var newBmp:BitmapData = new BitmapData(bmp.width, bmp.height);
var w = bmp.width / stride 1;
var h = bmp.height / stride 1;
var edgeW = bmp.width % stride; // 邊緣不足 stride 的部分
var edgeH = bmp.height % stride;
var centerW = (stride-1)/2; // 第一格的中心點
var centerH = centerY; // 第一格永遠(yuǎn)是方的
var tmpX, tmpY; // 循環(huán)中的真實像素位置, 前面 w, h 被除過了..
var blockW, blockH; // 馬賽克的格子

var i = -1;
while ( i < w) {
tmpX = i * stride;
if (i == w - 1){
blockW = edgeW;
} else {
blockW = stride;
}
centerW = (blockW - 1) / 2;
var j = -1;
while ( j < h) {
tmpY = j * stride;
if (i == h - 1){
blockH = edgeH;
} else {
blockH = stride;
}
centerH = (blockH - 1) / 2;
var color = bmp.getPixel(tmpX centerW, tmpY centerH);
var m = -1;
while ( m < blockW) {
var n = -1
while ( n < blockH) {
newBmp.setPixel(tmpX m, tmpY n,color);
}
}
}

}
trace("Cost : " (getTimer()-startTime));
return newBmp;
}

以上代碼請用FLASH8編譯執(zhí)行.

分享:flash緩動效果
今天在做一個簡單的flash動畫時,發(fā)現(xiàn)了flash的一個比較好的特性。都怪自己很久沒接觸flash了,新的flash出了這么好的特性我竟然不知道。一直以來希望flash能像

來源:藍(lán)色理想//所屬分類:Flash教程/更新時間:2008-03-05
相關(guān)Flash教程