Показать сообщение отдельно
Старый 18.10.2016, 11:36
Androidwww вне форума Посмотреть профиль Отправить личное сообщение для Androidwww Найти все сообщения от Androidwww
  № 3  
Ответить с цитированием
Androidwww

Регистрация: Sep 2013
Сообщений: 12
Благодарю за совет,
вот только для того что бы просчитать объекты созданные в результате разделения мне бы для начала, как то создать их надо.
На чем я на данный момент тормознулся, так это создание клонов (копий) спрайтов, которые должны выполнять разделение (это те самые кнопки), дальше надо будет научится их растягивать, в рамках секции в которую я этот разделитель размещаю...
Вот вполне себе рабочий код всех моих, рисований на данный момент, где особая сложность, возникла как раз с клонированием, вроде как копия спрайта создается (_razdelitel = cloneSprite(_spriteTop), НО... на экране в упор не появляется:

Код AS3:
package  {
 
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.display.DisplayObject;
	import flash.events.Event; 			
	import flash.events.MouseEvent; 
	import flash.ui.Mouse; 			
	import flash.ui.MouseCursor;	
 
	public class MODUL extends MovieClip
	{
 
	// Глобальные переменные;		
	public var _spriteTop:Sprite = new Sprite(); 
	public var _container:Sprite = new Sprite();	
	public var _razdelitel:Sprite = new Sprite();			
 
		public function MODUL() 
		{
 
 
	var  _WP:Number 		= 2500;   	// Ширина проема
	var  _HP:Number 		= 2300;  	// Высота проема
	var  _WD:Number 		= 0;   		// Ширина двери
	var  _HD:Number 		= 0;  		// Высота двери
	var  _WZ:Number 		= 20;   	// Замер профиля			
	var  _HZ:Number 		= 20;   	// Замер профиля			
	var  _KOL_D:Number 		= 3;  		// Количество дверей
	var  _KOL_P:Number 		= 2; 		// Количество перекрытий
	var  _KOEFFICIENT:Number 	= 7;	// Коэффициент для подгона в экран
	var  _color_fon:uint	= 0x747714;	// Цвет фона
	var  _color_line:uint	= 0x740000;	// Цвет линии
	var  _nz_h:Number 	= 40; 			// Начальный здвиг по отношению к началу координат
	var  _nz_w:Number 	= 40; 			// Начальный здвиг по отношению к началу координат
	var  _rz_h:Number 	= 0; 			// Расчет Здвига
	var  _rz_w:Number 	= 0; 			// Расчет Здвига
 
	var _KW = Math.ceil(_WP / 700);		
	var _KH = Math.ceil(_HP / 450);
 
 
	if (_KH <= _KW) {_KOEFFICIENT  = _KW} else {_KOEFFICIENT  = _KH};
	trace(" _KW "+_KW+"  _KH "+_KH +"_KOEFFICIENT "+_KOEFFICIENT);
 
		_WP = (_WP / _KOEFFICIENT); // + zdvig_w;
		_HP = (_HP / _KOEFFICIENT); // + zdvig_h;
		_WZ = (_WZ / _KOEFFICIENT);
		_HZ = (_HZ / _KOEFFICIENT);
 
		F_Fon(_nz_w, _nz_h,_WP,_HP,_color_fon);
 
		_nz_w = 45; _nz_h = 45 + _HZ;
		var j:int;
		for (j = 0; j < _KOL_D; j++) 
		{
		//trace("-------------------------"+i);	
 
			_rz_w = _nz_w + _WD * (j) + _WZ * (j); 
			_rz_h = _nz_h;
			_WD	= _WP/_KOL_D - _WZ; //  + zdvig_h;
			_HD	= _HP - _HZ; // - _ZAMER*2; // +  zdvig_w;
			_color_fon = 0xf08d0d; //e6e3d3; //740000; 
			F_Sekcia(_rz_w, _rz_h,_WD,_HD,_color_fon);			 
 
		}		
 
 
// Рисуем кнопки:		
 
 
addChild(_container);	
 
 
var sp_BTN1:Sprite = new Sprite();
sp_BTN1.graphics.beginFill(0x000099,1);
sp_BTN1.graphics.drawRect(800,70,6,30);
sp_BTN1.graphics.endFill();
_container.addChild(sp_BTN1);
 
var sp_BTN2:Sprite = new Sprite();
sp_BTN2.graphics.beginFill(0x990000,1);
sp_BTN2.graphics.drawRect(800,40,30,6);
//sp_KRUG2.moveTo(200, 200);
sp_BTN2.graphics.endFill();
_container.addChild(sp_BTN2);			
 
 
sp_BTN1.addEventListener(MouseEvent.MOUSE_OVER, curOn);
sp_BTN1.addEventListener(MouseEvent.MOUSE_OUT, curOff); 
sp_BTN2.addEventListener(MouseEvent.MOUSE_OVER, curOn);
sp_BTN2.addEventListener(MouseEvent.MOUSE_OUT, curOff); 
 
 
	}
 
 
private function F_Fon(_fz_w:Number=40, _fz_h:Number=40, _w:Number=88888, _h:Number=55555, _color:uint=0xffffff) 
		{
			// X = 55; Y = 55;
			//_w = _SHIR_P / _KOEFFICIENT;
			graphics.beginFill(_color);
			graphics.drawRect(_fz_w,_fz_h,_w,_h);
			graphics.endFill();
			//trace('!!'+_h/_k+"   "+_w/_k);	
 
		}			
 
 
 
private function F_Sekcia(zdvig_w:Number=40, zdvig_h:Number=40, _w:Number=88888, _h:Number=55555, _color:uint=0xffffff, _color_line:uint=0x750000) 
		{
 
			var mc:Sprite = new Sprite();
 
			mc.graphics.beginFill(_color);
			mc.graphics.lineStyle(0.5,_color_line); // , _color_line
			mc.graphics.drawRect(zdvig_w,zdvig_h,_w,_h);
			mc.graphics.endFill();
			addChild(mc);
 
 
		}			
 
 
// ФУНКЦИИ КНОПОК:
 
 
function mDown(event:MouseEvent):void
{
 
	_razdelitel = cloneSprite(_spriteTop);
	_razdelitel.startDrag();
	_container.addChild(_razdelitel);	
 
	//_spriteTop.startDrag();
 
 
}
 
function mUp(event:MouseEvent):void
{
	_razdelitel.stopDrag();
	//_spriteTop.stopDrag();
}
 
function curOn(event:MouseEvent):void 
{
	Mouse.cursor = MouseCursor.HAND; 
	addEventListener(MouseEvent.MOUSE_DOWN, mDown);
	addEventListener(MouseEvent.MOUSE_UP, mUp);
	//_razdelitel = cloneSprite(_spriteTop);
	//_container.setChildIndex(_razdelitel, _container.numChildren - 1);
	_spriteTop = event.target as Sprite;
	_container.setChildIndex(_spriteTop, _container.numChildren - 1);
} 
 
function curOff(event:MouseEvent):void 
{  
	Mouse.cursor = MouseCursor.AUTO;
}
 
// Клонирование
public function cloneSprite( target:Sprite ):Sprite
{
     // create clone
	trace('----- КЛОН -----');
     var targetClass:Class = Object( target ).constructor;
     var clone:Sprite = new targetClass();
	//_container.addChild(clone);
     return clone;
 
}
 
	}
 
 
 
 
}