Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 07.08.2007, 15:57
ARTur2 вне форума Посмотреть профиль Отправить личное сообщение для ARTur2 Найти все сообщения от ARTur2
  № 5  
Ответить с цитированием
ARTur2

Регистрация: Sep 2005
Адрес: Литва
Сообщений: 195
Тогда я Вам покажу код "нарезки"
Код:
//Порезка основного клипа
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;
		}
	}
};
она и не срабатывает...

Создать новую тему   Часовой пояс GMT +4, время: 06:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.