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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.11.2005, 22:47
MaxLife вне форума Посмотреть профиль Отправить личное сообщение для MaxLife Найти все сообщения от MaxLife
  № 11  
Ответить с цитированием
MaxLife

Регистрация: Nov 2003
Сообщений: 128
Через округление я делал, кажется, так - определял линии привязки через раунд для верхнего левого и нижнего правого, после определял невязку для того и другого. Где невязка меньше - туда и клеить.

Ну и сторону ловить, конечно.


Последний раз редактировалось MaxLife; 08.11.2005 в 22:49.
Старый 08.11.2005, 23:12
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от MaxLife
Через округление я делал, кажется, так - определял линии привязки через раунд для верхнего левого и нижнего правого, после определял невязку для того и другого. Где невязка меньше - туда и клеить.

Ну и сторону ловить, конечно.
А код то где?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 08.11.2005, 23:33
MaxLife вне форума Посмотреть профиль Отправить личное сообщение для MaxLife Найти все сообщения от MaxLife
  № 13  
Ответить с цитированием
MaxLife

Регистрация: Nov 2003
Сообщений: 128
//init line
lineStyle (0, 0);
for (i = 0; i < 11; i++) {
moveTo (0, i * 40);
lineTo (400, i * 40);
moveTo (i * 40, 0);
lineTo (i * 40, 400);
}
// init clip
createEmptyMovieClip ("mc", 0);
mc.lineStyle (0, 0xFF0000);
mc.beginFill (0xFF0000, 50);
mc.lineTo (30, 0);
mc.lineTo (30, 30);
mc.lineTo (0, 30);
mc.lineTo (0, 0);
mc.endFill ();
//
mc.onPress = function () {
//this.onMouseMove = this.mouseMove;
this.startDrag();
};
mc.onRelease = mc.onReleaseOutside = function () {
//delete this.onMouseMove;
this.stopDrag();

var x1 = Math.floor (this._x / 40);
var y1 = Math.floor (this._y / 40);

var dx1 = this._x - x1 * 40;
var dy1 = this._y - y1 * 40;

var x2 = Math.floor ((this._x + this._width) / 40);
var y2 = Math.floor ((this._y + this._height) / 40);

var dx2 = Math.abs(this._x + this._width - x2 * 40);
var dy2 = Math.abs(this._y + this._height - y2 * 40);

if (dx1 < dx2)
this._x = x1 * 40
else
this._x = x2 * 40 - this._width;

if (dy1 < dy2)
this._y = y1 * 40
else
this._y = y2 * 40 - this._height;

};

не совсем устойчив, зараза, каюсь. старый не найду - ещё на дельфи писал. срабатывает после отпускания.

Старый 08.11.2005, 23:53
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 14  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Не, он совсем глючит. Не привязывается к нижнему краю, хотя он ближе (размер увеличил до 90, чтобы был больше сетки)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.11.2005, 15:04
ccwds вне форума Посмотреть профиль Отправить личное сообщение для ccwds Посетить домашнюю страницу ccwds Найти все сообщения от ccwds
  № 15  
Ответить с цитированием
ccwds

Регистрация: Nov 2001
Адрес: Москва
Сообщений: 155
Вот классный пример, но я не могу с ним совладать.
Может, кто "асилит"
Вложения
Тип файла: zip newfurn5.zip (50.9 Кб, 58 просмотров)

Старый 10.11.2005, 19:08
MaxLife вне форума Посмотреть профиль Отправить личное сообщение для MaxLife Найти все сообщения от MaxLife
  № 16  
Ответить с цитированием
MaxLife

Регистрация: Nov 2003
Сообщений: 128
теперь банановый

//init line
lineStyle (0, 0);
for (i = 0; i < 11; i++) {
moveTo (0, i * 40);
lineTo (400, i * 40);
moveTo (i * 40, 0);
lineTo (i * 40, 400);
}
// init clip
createEmptyMovieClip ("mc", 0);
// shape size
var s = 90;
mc.lineStyle (0, 0xFF0000);
mc.beginFill (0xFF0000, 50);
mc.lineTo (s, 0);
mc.lineTo (s, s);
mc.lineTo (0, s);
mc.lineTo (0, 0);
mc.endFill ();
//
mc.onPress = function () {
this.startDrag();
};
mc.onRelease = mc.onReleaseOutside = function () {
this.stopDrag();

var x1 = Math.round (this._x / 40);
var y1 = Math.round (this._y / 40);

var dx1 = this._x - x1 * 40;
var dy1 = this._y - y1 * 40;

var x2 = Math.round ((this._x + this._width) / 40);
var y2 = Math.round ((this._y + this._height) / 40);

var dx2 = Math.abs(this._x + this._width - x2 * 40);
var dy2 = Math.abs(this._y + this._height - y2 * 40);

if (dx1 < dx2)
this._x = x1 * 40
else
this._x = x2 * 40 - this._width;

if (dy1 < dy2)
this._y = y1 * 40
else
this._y = y2 * 40 - this._height;

};

Старый 10.11.2005, 19:12
fishbounce вне форума Посмотреть профиль Отправить личное сообщение для fishbounce Посетить домашнюю страницу fishbounce Найти все сообщения от fishbounce
  № 17  
Ответить с цитированием
fishbounce

Регистрация: Dec 2003
Адрес: Москва
Сообщений: 176
вот, посмотри файл. Вроде работает, как надо

Старый 10.11.2005, 19:14
fishbounce вне форума Посмотреть профиль Отправить личное сообщение для fishbounce Посетить домашнюю страницу fishbounce Найти все сообщения от fishbounce
  № 18  
Ответить с цитированием
fishbounce

Регистрация: Dec 2003
Адрес: Москва
Сообщений: 176
черт, файл первый раз забыл
Вложения
Тип файла: rar grid.rar (5.4 Кб, 63 просмотров)

Старый 10.11.2005, 19:30
ccwds вне форума Посмотреть профиль Отправить личное сообщение для ccwds Посетить домашнюю страницу ccwds Найти все сообщения от ccwds
  № 19  
Ответить с цитированием
ccwds

Регистрация: Nov 2001
Адрес: Москва
Сообщений: 155
Спасибо! Все здорово!
Всем большое спасибо за помощь и за интересные решения!

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

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

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


 


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


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