2011-11-19 18 views
0

loadclip()がロードされた画像のスムージングを試みています。
スムージングのための関数が見つかりましたが、_level0にあるムービークリップ(例えば、_level0.mc)のみが動作しますが、子どもMCをスムースにしたいとします。例えば、_level0.parent_mc.children_mcです。

スムージング機能:ActionScript 2.0の動的スムージング

here = this; // trace(here) == _level0 
bg_smooth = function (bg):Void { 
    var bg_depth:Number = bg.getDepth(); 
    var bg_name:String = bg._name; 
    var bg_parent = bg._parent; 
    var bg_bitmap_temp:BitmapData = new BitmapData(bg._width, bg._height, true, 0x00FFFFFF); 
    bg_bitmap_temp.draw(bg); 
    removeMovieClip(bg); 
    bg_parent.createEmptyMovieClip(bg_name,bg_depth); 
    here[bg_name].bitmapObj = bg_bitmap_temp.clone(); 
    bg_bitmap_temp.dispose(); 
    here[bg_name].attachBitmap(here[bg_name].bitmapObj,1,"auto",true); 
}; 

他のコードは: - まだ運

var loader:MovieClipLoader = new MovieClipLoader(); 
var mclL:Object = new Object(); 
mclL.onLoadProgress = function(target, loadedBytes, totalBytes) { 
//trace(Math.round((loadedBytes/totalBytes) * 100) + "%"); 
}; 
loader.addListener(mclL);  
mclL.onLoadInit = function(element) { 
    bg_smooth(element); // trace(element) == _level0.mc or _level0.parent_mc.children_mc 
}; 

loader.loadClip("img/image.jpg", mc); // <= works 
//loader.loadClip("img/image.jpg", parent_mc.children_mc); // <= not works 

_level0.parent_mc['children_mc']の代わり parent_mc.children_mcを書くことと here == _level0.parent_mcを作ってみました。ロード完了時に bg_smooth(element)を削除すると、すべて正常に機能しますが、もちろんスムージングは​​無効になります。

答えて

1

もう1つの機能が見つかりました。他の人に役立つかもしれません。

function applySmoothing(target:MovieClip) { 
    var mcParent:MovieClip = target._parent; 
    var mcName:String = target._name; 
    var myBitmap:BitmapData = new BitmapData(target._width, target._height); 
    myBitmap.draw(target); 
    target.removeMovieClip(); 
    target.attachBitmap(myBitmap, 1, "auto", true); 
} 
関連する問題