Просмотр полной версии : Не работает код по заданию высоты и ширины клипа..
dima_kiv
13.11.2008, 20:42
this.createEmptyMovieClip("container_mc", 1);
container_mc.loadMovie("1.png");
attachMovie("container_mc","container_mc",10000);
container_mc._x=2;
container_mc._y=2;
container_mc._width=73;
container_mc._height=75;
в итоге ничего не выводит на экран.
без указния ширины и высоты картинку выводит, но исходного размера, а мне ее уменьшенной надо выводить на экран. помогите пожалуйста..
Mnilionic
13.11.2008, 21:58
первой строкой вы создаёте клип
второй строкой грузите в него картинку
а третья шо делает?
в своё время тоже были проблемы с рисайзом картинки загруженной через loadMovie, почитайте это (http://00--00.livejournal.com/76544.html), мне помогло, думаю и Вам поможет:)
Добавлено через 23 минуты
var image_mc = this.createEmptyMovieClip("image_mc", 0);
var loaderListener:Object = {};
loaderListener.onLoadInit = function(image:MovieClip)
{
image._width=73;
image._height=75;
}
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(loaderListener);
imageLoader.loadClip("1.png", image_mc);
image_mc._x=2;
image_mc._y=2;
dima_kiv
14.11.2008, 13:13
Offi спасибо, размер меняется, но вот картинка моя пикселями пошла, как ей поставить галочку allow smoothing програмно?
Mnilionic все, понял что ни к чему :)
[QUOTE=dima_kiv;776965]Offi ... но вот картинка моя пикселями пошла, ...QUOTE]
в битмапу ее ...:)
dima_kiv
14.11.2008, 14:20
skald и как?:)
это из хелпа ))))
по этим функциям и рекомендую искать ... я на прошлой неделе видел отличный материал на эту тему ... если найду, то выложу )))
какраз про сглаживание картинок при масштабировании ....
import flash.display.*;
this.createEmptyMovieClip("bmp1", this.getNextHighestDepth());
var bmpData1:BitmapData = new BitmapData(200, 200, false, 0xaa3344);
bmp1.attachBitmap(bmpData1, 2, "auto", true);
вот здесь вроде есть чутка ))) http://flasher.ru/forum/showthread.php?t=115695
dima_kiv
14.11.2008, 14:52
skald спасибо, если найдешь информацию обязательно скинь :)
есть такой вариант сглаживания изображения:
import flash.display.*;
_root.createEmptyMovieClip("pic",_root.getNextHighestDepth());
_root.createEmptyMovieClip("tmpic",_root.getNextHighestDepth());
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(loaderListener);
imageLoader.loadClip("1/1.png", tmpic);
_root.tmpic._visible=false;
var bitmap:BitmapData = new BitmapData(_root.tmpic._width,_root.tmpic._height,true);
_root.pic.attachBitmap(bitmap,_root.pic.getNextHighestDepth(),"auto",true);
bitmap.draw(_root.tmpic);
добавим в начало кода:
var loaderListener:Object = {};
loaderListener.onLoadInit = function(image:MovieClip)
{
image._width=72;
image._height=79;
}
но сглаживания как такогого не происходит, картинка все равно идет пикселями.. в чем ошибка?
Mnilionic
14.11.2008, 17:06
import flash.display.*;
import flash.geom.Matrix;
var mc = this.createEmptyMovieClip("pic", this.getNextHighestDepth());
mc._x = 2; mc._y = 2;
var temp_mc = this.createEmptyMovieClip("tmpic", this.getNextHighestDepth());
temp_mc._visible = false;
var imageLoader:MovieClipLoader = new MovieClipLoader();
function onLoadInit(image:MovieClip){
// масштабируем жёстко
var bitmap:BitmapData = new BitmapData(79, 72, true);
var mtx:Matrix = new Matrix();
mtx.scale ( 79 / image._width , 72 / image._height)
bitmap.draw(image, mtx);
removeMovieClip(temp_mc); // убиваем не нужный более клип
mc.attachBitmap(bitmap, mc.getNextHighestDepth(), "auto", true);
/*
// просто сжимаем если небходимо потом обратно растягивать
var bitmap:BitmapData = new BitmapData(image._width, image._height, true);
bitmap.draw(image);
removeMovieClip(temp_mc); // убиваем не нужный более клип
mc.attachBitmap(bitmap, mc.getNextHighestDepth(), "auto", true);
with(mc){
_width = 79; _height = 72;
}
*/
}
imageLoader.addListener(this);
imageLoader.loadClip("pic1.jpg", temp_mc);
dima_kiv
14.11.2008, 17:35
спасибо за ответ. но тем не менее картинка все таки уменьшаять идет пикселями... я кинул исходник, посмотрите пожалуста.
Mnilionic
15.11.2008, 01:40
в общем, фиг знает, гладко масштабируется только через двойное фотканье
import flash.display.*;
import flash.geom.Matrix;
var mc = this.createEmptyMovieClip("pic", this.getNextHighestDepth());
var temp_mc = this.createEmptyMovieClip("tmpic", this.getNextHighestDepth());
var imageLoader:MovieClipLoader = new MovieClipLoader();
function onLoadInit(image:MovieClip){
// фоткаем большую и крепим
var temp_bitmap:BitmapData = new BitmapData(image._width, image._height, true);
temp_bitmap.draw(image);
image.attachBitmap(temp_bitmap, 1, "auto", true);
// фоткаем заново, уменьшаем и аттачим в целевой клип
var mtx:Matrix = new Matrix();
mtx.scale ( 200 / image._width ,268 / image._height);
var bitmap:BitmapData = new BitmapData(200, 268, true);
bitmap.draw(image, mtx);
mc.attachBitmap(bitmap, 2, "auto", true);
// убиваем не нужные более вещи
removeMovieClip(temp_mc);
temp_bitmap.dispose()
}
imageLoader.addListener(this);
imageLoader.loadClip("3.png", temp_mc);
dima_kiv
15.11.2008, 16:36
Mnilionic большое спасибо!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.