PDA

Просмотр полной версии : Назначение маски на _levelN?


marat_sa
27.03.2008, 11:40
Доброго дня! Можно ли динамически назначить маску флэшке, загруженной на определенный уровень _level или самому уровню?

Obi
27.03.2008, 11:46
Можно. Ставьте маску выше объекта по глубине, и присваивайте ее объекту.

function setMyMask(mc:MovieClip, mask:MovieClip):Void {
mask.swapDepths(mc.getDepth()+1); // вместо mc.getDepth() можно использовать getNextHighestDepth()
mc.setMask(mask);
}

iNils
27.03.2008, 11:49
А зачем свапить?

Obi
27.03.2008, 11:52
Ну предполагается, что маска создается програмно, а нам нужно ее выше объекта поставить )
Если маска ручная, конечно свап не нужен )

marat_sa
27.03.2008, 11:55
Нет, не работает. В том то и дело, что назначить маску-клип нужно на _levelN, а не на клип.
_level1.setMask(mask_mc);
? ? ?

iNils
27.03.2008, 12:02
var mc:MovieClip = _level0.createEmptyMovieClip ("mc", _level0.getNextHighestDepth ());
mc.beginFill (0);
mc.lineTo (0, 100);
mc.lineTo (100, 100);
mc.lineTo (100, 0);
mc.lineTo (0, 0);
mc.endFill ();
_level0.setMask (mc);

Ну предполагается, что маска создается програмно, а нам нужно ее выше объекта поставить )
Если маска ручная, конечно свап не нужен )
Маске без разницы ее глубина, главное, чтобы была в клипе, который маскирует.

Obi
27.03.2008, 12:06
loadMovieNum("target.swf", 1);
onEnterFrame = function(){
if(_level1){
maskMc.swapDepths(2);
_level1.setMask(maskMc);
onEnterFrame = null;
}
}

marat_sa
27.03.2008, 12:16
Всем спасибо! Заработало.