PDA

Просмотр полной версии : Спрайт изменяется в размерах после установки как маска


Jin 2
08.09.2011, 10:40
Когда вставляю спрайт-маску, вижу что он отлично совпадает по размерам
как только ставлю spr.mask = spr_mask, spr_mask сразу уменьшается.

goodguy
08.09.2011, 11:28
Этого не может быть. Дело явно не в том, что он делается маской

Jin 2
08.09.2011, 11:40
ну черт его, я убираю одну строчку и размеры вновь нормальные

wvxvw
08.09.2011, 12:07
Наверное спрайт и маска находятся в разных системах координат, а когда вы его делаете маской, то его измерения переводятся в систему координат маскируемого клипа. parent у макски и маскируемого клипов один?

Jin 2
08.09.2011, 12:44
сначала маска была внутри маскируемого
попробовал поставить один парент, ничего не изменилось

goodguy
08.09.2011, 12:46
код в студию

Jin 2
08.09.2011, 13:05
window = new Sprite();
var inner:Sprite = new Sprite();
var img:ImgWindow = new ImgWindow();
img.x = -15;
img.y = -20;
img.width = wwidth+30;
img.height = wheight+30;
window.addChild(img);
window.addChild(inner);
scPane = new ScrollPane(wwidth - 15, wheight - 37, content, scrolls);
var mask:ImgWinMask = new ImgWinMask();
window.addChild(mask);
inner.addChild(scPane);
addChild(window);
inner.mask = mask;
mask.x = -15;
mask.y = -20;
mask.width = wwidth+30;
mask.height = wheight + 30;


Добавлено через 6 минут
ImgWindow это рамка окна, нестандартной формы
ImgWinMask это центральная часть окна

goodguy
08.09.2011, 14:28
Как создается сама маска? В ней есть заливка?

Jin 2
08.09.2011, 15:01
Там фигура из заливки

Добавлено через 1 час 26 минут
видимо я не один такой
http://www.bigresource.com/FLASH-Mask-affecting-dimensions-of-movie-txqResuyso.html
http://www.kirupa.com/forum/showthread.php?325461-as3-mask-wrong-height-and-width

wvxvw
09.09.2011, 15:50
Вообще-то, если так, то маску вообще никуда в дисплей лист добавлять не надо, я думал, что она просто уже добавлена.
Еще есть варианты - ScrollPane чего-нибудь делает с матрицей трансформации, либо проблема в том, что маска добавляется к объекту у которого размеры 0/0, и тогда scaleX / scaleY могут показывать чудеса, типа 0/0 или очень маленьких чисел.