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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 31.08.2004, 18:42
Sh@man вне форума Посмотреть профиль Отправить личное сообщение для Sh@man Найти все сообщения от Sh@man
  № 1  
Sh@man
 
Аватар для Sh@man

Регистрация: Mar 2002
Сообщений: 840
Отправить сообщение для Sh@man с помощью AIM Отправить сообщение для Sh@man с помощью Skype™
По умолчанию Надо сделать crop как в фотошопе

Мне во флеше необходимо реализовать работу инструмента Crop точно так как он сделан в фотошопе, т.е. при выделении области картинки остается видима только эта область, а остальная часть затеняется, видны бегущие пунктиры, квадратики и т.д.
Может кто уже делал такое? Подскажите функции.
Thnx
__________________
www.maxshaman.com

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

Регистрация: Oct 2003
Адрес: Украина, Киев
Сообщений: 44
Привет!

После того как выделена область, скриптом:

1. создаеш пустой клип с depth > того где картинка, т.е. размещаеш его над кортинкой.

2. в этом клипе ресуеш 4 прямоугольника кот. будут закрывать "обрезанную" часть картинку, например серого цвета.

3. устанавливаеш альфа данного клипа на 50%.


Бегущую линию - можно например сделать клип с 1-й линией, в кото будет проигроватся анимация. Причем данный клип должен иметь маску в кач-ве мувиклипа и заданным именем, а также иметь максимально возможную длинну. ПОтом береш этот клип и дублируеш его 4 раза и размещаеш слева, сверху,справа, снизу. А размер его регулируется маской.

Такие варианты первыми пришли в голову.

Удачи
__________________
Удачи,
Flasham

Старый 01.09.2004, 19:33
Sh@man вне форума Посмотреть профиль Отправить личное сообщение для Sh@man Найти все сообщения от Sh@man
  № 3  
Sh@man
 
Аватар для Sh@man

Регистрация: Mar 2002
Сообщений: 840
Отправить сообщение для Sh@man с помощью AIM Отправить сообщение для Sh@man с помощью Skype™
Э-э-э неее. Я не то имел в виду. Мне надо все скриптом сделать. Т.е. загружаем картинку, а затем выделяем мышью область картинки и чтоб выделение производилось динамически как в фотошопе - с такими же эффектами и т.д.
__________________
www.maxshaman.com

Старый 02.09.2004, 03:16
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 4  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Может быть, не самый лучший вариант, но напрягаться сейчас - просто лень, и спать хочется. Позови Silin(a), он любит и умеет такие вещи до ума доводить.
Вложения
Тип файла: zip crop.zip (79.9 Кб, 136 просмотров)
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 02.09.2004, 17:46
Sh@man вне форума Посмотреть профиль Отправить личное сообщение для Sh@man Найти все сообщения от Sh@man
  № 5  
Sh@man
 
Аватар для Sh@man

Регистрация: Mar 2002
Сообщений: 840
Отправить сообщение для Sh@man с помощью AIM Отправить сообщение для Sh@man с помощью Skype™
А где его искать этого Silin(a) ?
__________________
www.maxshaman.com

Старый 02.09.2004, 17:54
Sh@man вне форума Посмотреть профиль Отправить личное сообщение для Sh@man Найти все сообщения от Sh@man
  № 6  
Sh@man
 
Аватар для Sh@man

Регистрация: Mar 2002
Сообщений: 840
Отправить сообщение для Sh@man с помощью AIM Отправить сообщение для Sh@man с помощью Skype™
А в принципе то что ты сделал - очень неплохо. Спасибо.
__________________
www.maxshaman.com

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

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Вот так, наверное, интереснее будет. Но есть одна проблема: все хорошо, если делаешь выделение стандартным способом – сверху-слева вниз-вправо. Если в других направлениях, - получается лажа.
Надо прописывать дополнительные условия. Будет время, - поправлю. Если еще желающих не найдется.
Вложения
Тип файла: zip for_crop1.zip (80.6 Кб, 98 просмотров)
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 03.09.2004, 20:13
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 8  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Да уж Силин бы сделал конфетку.
У меня вот что получилось -
есть мув с пунктирным квадратом и линкаге -

Ну а дальше всё просто /относительно/ -

xf = foto._x;
yf = foto._y;
xc = cont._x;
yc = cont._y;
_root.onMouseDown = function() {
limit_foto = foto.getBounds(this);
foto.setMask(null);
if (!knopka.hitTest(_root._xmouse, _root._ymouse, false)) {
foto._x = xf;
foto._y = yf;
cont._x = xc;
cont._y = yc;
x1 = _root._xmouse;
y1 = _root._ymouse;
_root.onEnterFrame = function() {
cont.attachMovie("punktir", "punktir", 1);
with (cont) {
if (x1>=limit_foto.xMin && x1<=limit_foto.xMax) {
if (_root._xmouse>=limit_foto.xMin && _root._xmouse<=limit_foto.xMax) {
_x = x1+(_root._xmouse-x1)/2;
_xscale = Math.abs(_root._xmouse-x1);
} else if (_root._xmouse<limit_foto.xMin) {
_x = limit_foto.xMin+(x1-limit_foto.xMin)/2;
_xscale = Math.abs(x1-limit_foto.xMin);
} else if (_root._xmouse>limit_foto.xMax) {
_x = x1+(limit_foto.xMax-x1)/2;
_xscale = Math.abs(x1-limit_foto.xMax);
}
} else if (x1<limit_foto.xMin) {
if (_root._xmouse>=limit_foto.xMin && _root._xmouse<=limit_foto.xMax) {
_x = limit_foto.xMin+(_root._xmouse-limit_foto.xMin)/2;
_xscale = Math.abs(limit_foto.xMin-_root._xmouse);
} else if (_root._xmouse<limit_foto.xMin) {
_x = limit_foto.xMin;
_xscale = 0;
} else if (_root._xmouse>limit_foto.xMax) {
_x = (limit_foto.xMax+limit_foto.xMin)/2;
_xscale = Math.abs(limit_foto.xMax-limit_foto.xMin);
}
} else if (x1>limit_foto.xMax) {
if (_root._xmouse>=limit_foto.xMin && _root._xmouse<=limit_foto.xMax) {
_x = limit_foto.xMax+(_root._xmouse-limit_foto.xMax)/2;
_xscale = Math.abs(limit_foto.xMax-_root._xmouse);
} else if (_root._xmouse<limit_foto.xMin) {
_x = (limit_foto.xMax+limit_foto.xMin)/2;
_xscale = Math.abs(limit_foto.xMax-limit_foto.xMin);
} else if (_root._xmouse>limit_foto.xMax) {
_x = limit_foto.xMax;
_xscale = 0;
}
}
if (y1>=limit_foto.yMin && y1<=limit_foto.yMax) {
if (_root._ymouse>=limit_foto.yMin && _root._ymouse<=limit_foto.yMax) {
_y = y1+(_root._ymouse-y1)/2;
_yscale = Math.abs(_root._ymouse-y1);
} else if (_root._ymouse<limit_foto.yMin) {
_y = limit_foto.yMin+(y1-limit_foto.yMin)/2;
_yscale = Math.abs(y1-limit_foto.yMin);
} else if (_root._ymouse>limit_foto.yMax) {
_y = y1+(limit_foto.yMax-y1)/2;
_yscale = Math.abs(y1-limit_foto.yMax);
}
} else if (y1<limit_foto.yMin) {
if (_root._ymouse>=limit_foto.yMin && _root._ymouse<=limit_foto.yMax) {
_y = limit_foto.yMin+(_root._ymouse-limit_foto.yMin)/2;
_yscale = Math.abs(limit_foto.yMin-_root._ymouse);
} else if (_root._ymouse<limit_foto.yMin) {
_y = limit_foto.yMin;
_yscale = 0;
} else if (_root._ymouse>limit_foto.yMax) {
_y = (limit_foto.yMax+limit_foto.yMin)/2;
_yscale = Math.abs(limit_foto.yMax-limit_foto.yMin);
}
} else if (y1>limit_foto.yMax) {
if (_root._ymouse>=limit_foto.yMin && _root._ymouse<=limit_foto.yMax) {
_y = limit_foto.yMax+(_root._ymouse-limit_foto.yMax)/2;
_yscale = Math.abs(limit_foto.yMax-_root._ymouse);
} else if (_root._ymouse<limit_foto.yMin) {
_y = (limit_foto.yMax+limit_foto.yMin)/2;
_yscale = Math.abs(limit_foto.yMax-limit_foto.yMin);
} else if (_root._ymouse>limit_foto.yMax) {
_y = limit_foto.yMax;
_yscale = 0;
}
}
xxx = _x;
yyy = _y;
_parent.fl = true;
}
};
}
};
_root.onMouseUp = function() {
xsmesch = foto._x-xxx;
ysmesch = foto._y-yyy;
delete _root.onEnterFrame;
};
knopka.onPress = function() {
foto.setMask(cont);
if (fl) {
foto._x += xsmesch;
foto._y += ysmesch;
cont._x += xsmesch;
cont._y += ysmesch;
}
fl = false;
};
Очень надеюсь на помошь Нокса в оптимизации кода.
Вложения
Тип файла: zip untitled-3.zip (19.1 Кб, 132 просмотров)

Старый 03.09.2004, 20:23
Sh@man вне форума Посмотреть профиль Отправить личное сообщение для Sh@man Найти все сообщения от Sh@man
  № 9  
Sh@man
 
Аватар для Sh@man

Регистрация: Mar 2002
Сообщений: 840
Отправить сообщение для Sh@man с помощью AIM Отправить сообщение для Sh@man с помощью Skype™
Ай, молодца.... Очень неплохо получается.
__________________
www.maxshaman.com

Старый 03.09.2004, 20:45
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 10  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Цитата:
Оригинал написал(а) Sh@man
Ай, молодца.... Очень неплохо получается.
Чего молодца - давай код оптимизируй...
Если б не надо было б учитывать границы картинки при выделении - было бы 10 строчек, а так вот пришлось в лоб условия прописывать. Надеюсь Нокс мимо не пройдёт, поможет сократить писанину...


Последний раз редактировалось Штрек; 03.09.2004 в 20:47.
Создать новую тему   Часовой пояс GMT +4, время: 10:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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