| Androidwww |
18.10.2016 11:36 |
Благодарю за совет,
вот только для того что бы просчитать объекты созданные в результате разделения мне бы для начала, как то создать их надо.
На чем я на данный момент тормознулся, так это создание клонов (копий) спрайтов, которые должны выполнять разделение (это те самые кнопки), дальше надо будет научится их растягивать, в рамках секции в которую я этот разделитель размещаю...
Вот вполне себе рабочий код всех моих, рисований на данный момент, где особая сложность, возникла как раз с клонированием, вроде как копия спрайта создается (_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;
}
}
}
|