Тогда я Вам покажу код "нарезки"
Код:
//Порезка основного клипа
MovieClip.prototype.divide = function(nx, ny, link_id) {
var x = this.getBounds(this).xMin, y = this.getBounds(this).yMin;
// положение относительно точки регистрации
var wi = this._width/nx, hi = this._height/ny;
// размер фрагментов
var x0 = this._x, y0 = this._y;
var clip = this._parent.createEmptyMovieClip(this._name, this.getDepth());
// подменяем пустым, в котором все и создаем ..
with (clip) {
_x=x0, _y=y0;
}
this.length = nx*ny;
for (var i = this.length; i--; ) {
var c = container.clip.createEmptyMovieClip(i, i);
// создаем nx*ny пустых контейнеров
var b = c.attachMovie(link_id, 'b', this.getNextHighestDepth(), {_x:-x-(0.5+i%nx)*wi, _y:-y-(0.5+Math.floor(i/nx))*hi});
// аттачим (со сдвигом) в каждый каритнку
with (c) {
_x=x+(0.5+i%nx)*wi, _y=y+(0.5+Math.floor(i/nx))*hi;
}
// сдвигаем сам контейнер в другую сторону
var m = c.createEmptyMovieClip('m', 1);
// рисуем маску
with (m) {
beginFill(0), lineTo(wi, 0), lineTo(wi, hi), lineTo(0, hi), lineTo(0, 0), endFill();
_x=-wi/2, _y=-hi/2;
}
b.setMask(m);
}
};
//Создание маски
var mask = this.createEmptyMovieClip("mask", this.getNextHighestDepth());
//Создаём основную маску
mask._x = 100;
mask._y = 100;
with (mask) {
beginFill(0x00FF00), lineTo(0, 300), lineTo(300, 300), lineTo(300, 0), endFill();
}
var container = this.createEmptyMovieClip("container", this.getNextHighestDepth());
//Создаём контейнер и туда загружаем основной клип, на который вешается основная маска
container.createEmptyMovieClip("container", this.getNextHighestDepth());
container.attachMovie("clip", "clip", this.getNextHighestDepth());
container.setMask(mask);
container.clip.divide(10, 10, 'clip');
он работает отлично!
а вот как я проверял видимость/не видимость после перетаскивания:
Код:
container.clip.onPress = startDrag;
container.clip.onRelease = container.clip.onReleaseOutside=stopDrag;
//
container.clip.startDrag = function() {
for (var i = container.clip.length; i--; ) {
if (mask.hitTest(container.clip[i])) {
container.clip[i]._visible = true;
} else {
container.clip[i]._visible = false;
}
}
};
она и не срабатывает...
|