Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   сглаживание Bitmap + применении scale (http://www.flasher.ru/forum/showthread.php?t=127328)

polol 10.07.2009 20:37

сглаживание Bitmap + применении scale
 
Почему не работает сглаживание при применении scale? Не та последовательность?


Код AS1/AS2:

 
 
import flash.display.*;
import flash.geom.Matrix
 
 
 
function loadBitmapSmoothed(target:MovieClip, loadPic:String) {
 
    var bmc:MovieClip = target.createEmptyMovieClip(
        "bmc",
        target.getNextHighestDepth());
 
 
    var listener:Object = new Object();
 
 
    listener.tmc = target;
 
    listener.onLoadInit = function(mc:MovieClip) {
        mc._visible = false;
 
 
 
 
scale=10
 
scale/=100
 
 
 
scaleMatrix = new Matrix()
scaleMatrix.scale(scale,scale)
 
 
 
 
        var bitmap:BitmapData = new BitmapData(
            mc._width*scale,
            mc._height*scale,
            true);
 
 
 
 
        this.tmc.attachBitmap(
            bitmap,
            this.tmc.getNextHighestDepth(),
            "auto",
            true);
 
 
        bitmap.draw(mc,scaleMatrix);
    };
 
 
    var loader:MovieClipLoader = new MovieClipLoader();
    loader.addListener(listener);
    loader.loadClip(loadPic, bmc);
}
 
 
 
 
 
 
 loadBitmapSmoothed(_root.container, "pics/logo.png");


KiL33 11.07.2009 07:54

Может тупо _quality="BEST"

polol 11.07.2009 13:55

с quality есть сложности. в моем случае просто никакого эффекта, прочесал в инете - в целом у всех с этим трюком без результатов...

KiL33 12.07.2009 05:57

Странно, а уменя в полне очень даже положительный результат:)

polol 12.07.2009 13:21

странно....а свойство _quality="BEST" применять на мувик, к которому bitmap аттачится?
то есть в моем случае
Код AS1/AS2:

 this.tmc._quality="BEST"

?

KiL33 12.07.2009 15:41

нет..это в принципе ко всему вашему ролику..ну напишите так
_root._quality="BEST"

polol 12.07.2009 23:26

к сожалению никакого результата и в этом случае...AS2, CS3...

tetra 21.07.2009 18:16

Я пользуюсь такой штукой для загрузки внешних картинок с ресайзом
писал для себя так что не претендую на супер оригинальнось
Код AS1/AS2:

/***********************************************************
Загрузка  изображений в контейнер Image Версия 2.5
 
HELP // README и прочая ботва
 
- вызов класса теперь такой
        _root.createEmptyMovieClip("tmpic",_root.getNextHighestDepth());
        mcLoader.loadClip("имя/картинки.jpg",tmpic);
- в сцене нужно присутсвие
        con_img
- Ресайз картинки на весь экран
        con_img._x = (Stage.width-con_img._width)/2;
                xProporc = Stage.width/con_img._width;
                yProporc = Stage.height/con_img._height;
                if (xProporc>yProporc) {
                        con_img._width = con_img._width*xProporc;
                        con_img._height = con_img._height*xProporc;
                } else {
                        con_img._width = con_img._width*yProporc;
                        con_img._height = con_img._height*yProporc;
                }
- добавить если надо позиционирование по Y con_img._y = (Stage.height-con_img._height)/2;
- динамическое поле для процентов должно иметь лейбл percent
- мувиклип LoadBar - отображает загрузку визуально. Должен также присутствовать в сцене
************************************************************/

import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.display.BitmapData
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
 
// Пишем START LOAD NEXT IMAGE при начале загрузки
listener.onLoadStart = function(target_mc:MovieClip) {
 
percent ="Start Load next Image";
 
}
// В процессе загрузки пишем количество загруженных байт и общее число байт
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
loadBar._alpha = 100;
 
loadBar._width = ((Math.round(bytesLoaded/1024))/ (Math.round(bytesTotal/1024)))* Stage.width ;
percent ="Load Image progress: " + Math.round(bytesLoaded/1024) + " kb of " + Math.round(bytesTotal/1024) + "kb";
 
}
listener.onLoadInit =function(tmpic) {
        //создаем битмап дату для темпового контейнера
        var bitmap:BitmapData = new BitmapData(tmpic._width, tmpic._height, true, 0);
        bitmap.draw(tmpic);
        //атачим его в контейнер картинок
        con_img.attachBitmap(bitmap,2,"auto",true);
        // удаляем ненужную копию без битмап даты
        tmpic.removeMovieClip();
 
}
// При завершении загузки пишем что все готово
listener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void {
percent ="Load Complite";
loadBar._alpha = 0;
var tween_handler:Object = new Tween(con_img, "_alpha", Strong.easeIn, 0, 100, 1, true);
trace ("Появление завершено!");
percent ="";
        }
// При ошибки загрузки пишем ошибку и просем растартнуть страницу
listener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number):Void {
                percent ="errorCode: " + errorCode + " REFRESH PAGE"
 
        }
 
/******************************************************************
 конец загрузки  изображений в контейнер Image Версия 2.5
*******************************************************************/



Часовой пояс GMT +4, время: 23:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.