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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.06.2010, 22:48
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 1  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
По умолчанию объеденение двух rectangle

Доброго времени суток господа и господини
вот уже второй день пытаюсь найти решение и - ниалё

казалось бы простая штука встала перед моим мозговым обработчиком но в итоге оказалась тупиковой для меня

задача: слепить большой и маленький прямоугольник так чтобы один мог ездить по линии соединения с другим причем что у этих прямоугольников есть линия цветная а в месте слипания этих прямоугольников ее не должно быть . и все вроде просто но у этих двух прямоугольников есть скругленные углы которые и "вылазят" когда соединение происходит в конце и + эти прямоугольники плупрозрачны тоесть один на другой просто так не нацепить

вот и картинка
[IMG]http://s57.***********/i158/1006/fa/e37eec0605bc.jpg[/IMG]

может кто делал подобное поделитесь идеями как такое организовать

потому как мой нынешний вариант - использование пнг и маски как-то кривенько
спаисбо

Старый 25.06.2010, 23:39
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если лень делать геометрические рассчеты для рисования в Graphics, можно сделать два спрайта, в один поместить полупрозрачный фон, а в другой - два черных прямоугольника, и сделать его маской к первому. Бордер же можно организовать фильтром - glow или dropshadow без смещения.

Добавлено через 1 час 12 минут
Вот пример...
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.display.BlendMode;
	import flash.events.Event;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.MouseEvent;
	import flash.filters.DropShadowFilter;
	import flash.geom.Rectangle;
 
	public class Main extends Sprite 
	{
		private var _container       :Sprite = new Sprite();
		private var _mask            :Sprite = new Sprite();
		private var _background      :Sprite = new Sprite();
		private var _staticRectangle :Sprite = new Sprite();
		private var _dynamicRectangle:Sprite = new Sprite();
		private var _dragRect        :Rectangle = new Rectangle(0, 0, 0, 400);;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
 
			// entry point
			addChild(_container);
			_container.x = _container.y = 50;
			_background.graphics.beginFill(0x000000, 0.5);
			_background.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
			_staticRectangle.graphics.beginFill(0x000000, 1);
			_staticRectangle.graphics.drawRoundRect(0, 0, 500, 500, 12);
			_mask.addChild(_staticRectangle);
			_staticRectangle.x = 150;
			_dynamicRectangle.graphics.beginFill(0x000000, 1);
			_dynamicRectangle.graphics.drawRoundRect(0, 0, 200, 100, 12);
			_mask.addChild(_dynamicRectangle);
			_mask.graphics.beginFill(0x000000, 0);
			_mask.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
			////
			_container.addChild(_background);
			_container.addChild(_mask);
			_mask.cacheAsBitmap = true;
			_mask.blendMode = BlendMode.ALPHA;
			_background.blendMode = BlendMode.NORMAL;
			_container.blendMode = BlendMode.LAYER;
			// цвет и соотношения прозрачностей заливки и бордера регулировать здесь - в настройках фильтра (дробные числа).
			_container.filters = [new DropShadowFilter(0, 90, 0x000000, 0.10, 2, 2, 10.00, 3, false, true, true)];
 
			_dynamicRectangle.addEventListener(MouseEvent.MOUSE_DOWN, onPress);
		}
		private function onPress(event:MouseEvent):void
		{
			_dynamicRectangle.removeEventListener(MouseEvent.MOUSE_DOWN, onPress);
			_dynamicRectangle.addEventListener(MouseEvent.MOUSE_UP, onUp);
			_dynamicRectangle.startDrag(false, _dragRect);
		}
		private function onUp(event:MouseEvent):void
		{
			_dynamicRectangle.removeEventListener(MouseEvent.MOUSE_UP, onUp);
			_dynamicRectangle.addEventListener(MouseEvent.MOUSE_DOWN, onPress);
			_dynamicRectangle.stopDrag();
		}
	}
 
}
__________________
Reality.getBounds(this);

Старый 26.06.2010, 01:09
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Забыл файлик прикрутить)
Вложения
Тип файла: rar DragMaskTest.rar (1.7 Кб, 61 просмотров)
__________________
Reality.getBounds(this);

Старый 26.06.2010, 01:43
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 4  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
товарисч!
ощутил вашу поддержку и ...

да будут счастливы все существа на земле

спасибо

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

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

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


 


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


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