2011-11-19 3 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

Я нашел другую рабочую функцию. Может быть полезно для кого-то другого.

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); 
} 
Смежные вопросы