Т.е. Есть у меня клип 300*300 есть маска 150*150
размеры клипа остаются быть 300*300 вне зависимости от того применена ли маска..
а мне надо делать лейаут.. и как-то неудобно работать обращаясь к
размерам маски.. Как быть?
Перезаписать width/height не предлагать - не работает.. точнее
работает.. но как только это вкладываешь в другой спрайт - оно его
растягивает до истинных размеров.
--
С уважением, Скорик Андрей. andrew...@gmail.com
> Перезаписать width/height не предлагать - не работает.. точнее
> работает.. но как только это вкладываешь в другой спрайт - оно его
> растягивает до истинных размеров.
- всё работает. Если переписать get/set для width и height, то всё ок.
Я не помню, но может быть еще и scaleX и scaleY потрогать придется.
//page -целевой элемент большого размера..
/* PageBase - перезаписаны методы-установщики ширины и высоты
{
if (this.mask)
{
return this.mask.width;
}
else
{
return super.width;
}
}
public override function set width(new_width:Number):void
{
if (this.mask)
{
var beginMaskWidth:Number = mask.width;
var beginThisWidth:Number = this.width;
this.mask.width = new_width;
//Scale this just as many percent as you scaled the mask
super.width = (this.mask.width / beginMaskWidth) * beginThisWidth;
}
else
{
super.width = new_width;
}
}
*/
.............
var cont:Sprite = new Sprite ();
var mask:Sprite = new Sprite ();
var gr:Graphics = mask.graphics;
gr.beginFill(0xff0000, 1);
gr.drawRect(0,0, 100, 100);
gr.endFill();
var wrapper:PageBase = new PageBase ();
cont.addChild(mask);
cont.addChild(wrapper);
wrapper.addChild(page);
wrapper.mask = mask;
trace ('mask size: '+mask.width +' x '+ mask.height);
trace ('wrapper size: '+wrapper.width +' x '+ wrapper.height);
trace ('cont size: '+cont.width +' x '+ cont.height);
.........................
// output
mask size: 100 x 100
wrapper size: 100 x 100
cont size: 290 x 10251
вуаля...
> мне то собсно надо чтоб и у cont - у того куда все это добро пихается
> - размеры были равными видимым размерам контента.. а не тому что
> замаскировано..
- значит им всем нужно менять get/set методы для ширины и высоты.
и так до стейджа? :)
как-то это совсем уныло.. я думал есть трюк..
trace (mc.width)
trace (mc.height)
mc.scrollRect = new Rectangle (0,0,20,20);
trace (mc.width)
trace (mc.height)
лично у меня выводит (визуальные размеры объекта изменяются) следующее:
250
250
250
250
super.addChild(mc);
a();
mc.scrollRect = new Rectangle(0,0,20,20);
a();
super.addEventListener(Event.ENTER_FRAME, a);
function a(e:Event = null):void {
trace(mc.width);
trace(mc.height);
trace(mc.getBounds(mc));
}
--
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
Проверил - не применяется пока не добавлен в дисплей.