Я пытаюсь сделать сглаживание для изображений, которые загружены с loadclip()
.
Я нашел функцию сглаживания, и она работает, но только для видеороликов, расположенных в _level0
, например _level0.mc
, но я хочусгладьте детский MC, например _level0.parent_mc.children_mc
, а затем изображение просто исчезнет.
функция сглаживания:
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)
при завершении загрузки, то все работает нормально, но, конечно, сглаживание отключено.