Друзья, добрый вечер, помогите пожалуйста разобраться в проблеме прорисовки линий.
Проблема показана в изображении (ниже)
Реализация класса:
Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.LineScaleMode;
import flash.display.CapsStyle;
public class HPanel extends MovieClip
{
private var _ширина : Number=0;
private var _высота : Number=0;
private var _X : Number=0;
private var _Y : Number=0;
private var _смещениеЛинии: Number=0;
private var _толщинаЛинии : Number=0;
private var _цветЛинии : Number=0;
public function HPanel(ширина_, высота_, смещениеЛинии_, толщинаЛинии_, цветЛинии_:Number=0)
{
// ---[ сохраняем настройки ]------------------------------------------------------------------------------------------------------------
this._X = 0; // X
this._Y = 0; // Y
this._ширина = ширина_; // длинна диалогового окна;
this._высота = высота_; // высота диалогового окна;
this._смещениеЛинии = смещениеЛинии_; // отступ между линиями;
this._толщинаЛинии = толщинаЛинии_; // толщина линии;
this._цветЛинии = цветЛинии_; // цвет линий;
Init(); // инициализания;
}
public function Init():void
{
var X0:Number =0;
var Y0:Number =0;
var X1:Number =0;
var Y1:Number =0;
while(true)
{
Y0+=this._смещениеЛинии;
X1+=this._смещениеЛинии;
if( Y0> this._высота){X0+=this._смещениеЛинии; Y0=this._высота;}
if( X1> this._ширина){Y1+=this._смещениеЛинии; X1=this._ширина;}
if((X1>=this._ширина-1) &&
(Y1>=this._высота-1)){break;} // супер выход из цикла;
var рисуемЛинии: Sprite =new Sprite();
рисуемЛинии. graphics.lineStyle(this._толщинаЛинии, this._цветЛинии, 1,false, LineScaleMode.NORMAL, CapsStyle.SQUARE); // показали стиль;
рисуемЛинии. graphics.moveTo(X0, Y0);
рисуемЛинии. graphics.lineTo(X1, Y1);
trace("(",X0,",",Y0,") - (", X1,",",Y1,")");
this.addChild(рисуемЛинии);
} // while
} // function
} // class
} // package
Запуск
Код AS3:
var панель: HPanel = new HPanel(300,200,4*2,4,0xFFFFFF);
панель.x=30;
панель.y=30;
addChild(панель);
...ну согласен, как бы - да, кривая математика.