PDA

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


Futs
22.08.2005, 18:52
Рисуется n вертикальных (к примеру) прямоугольников, а потом один горизонтальный сверху на них, можно ли узнать пересечения прямоугольников, что бы сделать нижние полностью видимыми.
По моему сам не очень понял, что написал, да, изменение уровня не подойдет.

Штрек
23.08.2005, 00:20
this.createEmptyMovieClip('pic1', 1);
this.createEmptyMovieClip('pic2', 2);
with (_root.pic1) {
beginFill(0xff0000);
for (var i = 0; i<=9; i++) {
moveTo(i*40, 0);
lineTo(i*40+20, 0);
lineTo(i*40+20, 300);
lineTo(i*40, 300);
lineTo(i*40, 0);
}
}
with (_root.pic2) {
beginFill(0x006699);
moveTo(0, 80);
lineTo(500, 80);
lineTo(500, 120);
lineTo(0, 120);
lineTo(0, 80);
}
_root.pic2.onRelease=function () {
_root.pic2.swapDepths(_root.pic1)
}

Futs
23.08.2005, 12:43
Спасибо но мне нужно именно без изменения уровней, вот набросал, но как сделать, для нескольких клипов, не догоняюthis.createEmptyMovieClip("muv1_mc", 1);
this.muv1_mc._x = 0;
this.muv1_mc._y = 0;
this.muv1_mc.beginFill(0x000000);
this.muv1_mc.lineTo(100, 0);
this.muv1_mc.lineTo(100, 100);
this.muv1_mc.lineTo(0, 100);
this.muv1_mc.lineTo(0, 0);
this.muv1_mc.endFill();
this.createEmptyMovieClip("muv2_mc", 2);
this.muv2_mc.ob = new Object();
this.muv2_mc.ob = {x1:100, y1:0, x2:100, y2:100, x3:0, y3:100, x4:0, y4:0};
this.muv2_mc._x = 0;
this.muv2_mc._y = 120;
this.muv2_mc.beginFill(0x0000ff);
this.muv2_mc.lineTo(this.muv2_mc.ob.x1, this.muv2_mc.ob.y1);
this.muv2_mc.lineTo(this.muv2_mc.ob.x2, this.muv2_mc.ob.y2);
this.muv2_mc.lineTo(this.muv2_mc.ob.x3, this.muv2_mc.ob.y3);
this.muv2_mc.lineTo(this.muv2_mc.ob.x4, this.muv2_mc.ob.y4);
this.muv2_mc.endFill();
this.muv2_mc.onPress = function() {
this.startDrag();
};
this.muv2_mc.onRelease = function() {
this.stopDrag();
brash();
};
function brash() {
var kub = this.muv2_mc;
var hit = this.muv1_mc;
if (kub.getBounds(this).xMin>hit.getBounds(this).xMin && kub.getBounds(this).xMin<hit.getBounds(this).xMax && kub.getBounds(this).yMin>hit.getBounds(this).yMin && kub.getBounds(this).yMin<hit.getBounds(this).yMax) {
kub.ob = {x0:0, y0:hit.getBounds(this).yMax-kub.getBounds(this).yMin, x1:hit.getBounds(this).xMax-kub.getBounds(this).xMin, y1:hit.getBounds(this).yMax-kub.getBounds(this).yMin, x2:hit.getBounds(this).xMax-kub.getBounds(this).xMin, y2:0, x3:100, y3:0, x4:100, y4:100, x5:0, y5:100, x6:0, y6:hit.getBounds(this).yMax-kub.getBounds(this).yMin};
kub.clear();
kub.lineStyle(2, 0xff00ff, 100);
kub.beginFill(0x0000ff);
kub.moveTo(kub.ob.x0, kub.ob.y0);
kub.lineTo(kub.ob.x1, kub.ob.y1);
kub.lineTo(kub.ob.x2, kub.ob.y2);
kub.lineTo(kub.ob.x3, kub.ob.y3);
kub.lineTo(kub.ob.x4, kub.ob.y4);
kub.lineTo(kub.ob.x5, kub.ob.y5);
kub.lineTo(kub.ob.x6, kub.ob.y6);
kub.endFill();
}
}

Штрек
23.08.2005, 22:29
а чем тебе уровни не угодили????
с их помощью как раз и осуществл. Z сортировка.........

silin
24.08.2005, 00:29
2 Futs, не очень ясно зачем 'нужно именно без изменения уровней', точнее, совсем не ясно зачем изврат такой..,
но как вариант:
this.createEmptyMovieClip("muv1_mc", 1);
this.muv1_mc._x = 0;
this.muv1_mc._y = 0;
this.muv1_mc.beginFill(0x000000);
this.muv1_mc.lineTo(100, 0);
this.muv1_mc.lineTo(100, 100);
this.muv1_mc.lineTo(0, 100);
this.muv1_mc.lineTo(0, 0);
this.muv1_mc.endFill();
this.createEmptyMovieClip("muv2_mc", 2);
this.muv2_mc.ob = new Object();
this.muv2_mc.ob = {x1:100, y1:0, x2:100, y2:100, x3:0, y3:100, x4:0, y4:0};
this.muv2_mc._x = 0;
this.muv2_mc._y = 120;
this.muv2_mc.beginFill(0x0000ff);
this.muv2_mc.lineTo(this.muv2_mc.ob.x1, this.muv2_mc.ob.y1);
this.muv2_mc.lineTo(this.muv2_mc.ob.x2, this.muv2_mc.ob.y2);
this.muv2_mc.lineTo(this.muv2_mc.ob.x3, this.muv2_mc.ob.y3);
this.muv2_mc.lineTo(this.muv2_mc.ob.x4, this.muv2_mc.ob.y4);
this.muv2_mc.endFill();
this.muv2_mc.onPress = function() {
this.startDrag();
};
this.muv2_mc.onRelease = function() {
this.stopDrag();
this.setUp(muv1_mc);
//brash();
};

MovieClip.prototype.setUp=function(mc){
var p=this.getBounds(_root);
var m=_root.createEmptyMovieClip('m',999);
with(m) {//рисуем мувик на все сцену с дыркой по габаритам мувика
beginFill(0),lineTo(Stage.width,0),lineTo(Stage.width,p.yMin),lineTo(0,p.yMin),lineTo(0,0),endFill();
moveTo(0,p.yMin);
beginFill(0),lineTo(p.xMin,p.yMin),lineTo(p.xMin,Stage.height),lineTo(0,Stage.height),lineTo(0,p.yMin),endFill();
moveTo(p.xMax,p.yMin);
beginFill(0),lineTo(Stage.width,p.yMin),lineTo(Stage.width,Stage.height),lineTo(p.xMax,Stage.height),lineTo(p.xMax,p.yMin),endFill();
moveTo(p.xMin,p.yMax);
beginFill(0),lineTo(p.xMax,p.yMax),lineTo(p.xMax,Stage.height),lineTo(p.xMin,Stage.height),lineTo(p.xMin,p.yMin),endFill();
}
mc.setMask(m);//ставим его маской для мувика, который нада перекрыть
}