PDA

Просмотр полной версии : Объясните зачем нужен Четырехугольник при простом рисования линии


Кирилл63
02.03.2011, 19:04
package
{
import flash.display.Sprite;
import flash.display.CapsStyle;
import flash.display.LineScaleMode;
import flash.events.MouseEvent;

public class main extends Sprite
{
var _sprite:Sprite;
public function main()
{
_sprite = new Sprite ();
_sprite.graphics.beginFill(0xCCCCCC);
_sprite.graphics.drawRect(0, 0, 600, 400);
_sprite.graphics.endFill();
addChild(_sprite);
_sprite.addEventListener(MouseEvent.MOUSE_DOWN, down);
_sprite.addEventListener(MouseEvent.MOUSE_UP,up);



}
public function mmove(e:MouseEvent):void
{
_sprite.graphics.lineTo(mouseX,mouseY);
}
public function down(event:MouseEvent):void
{
_sprite.graphics.lineStyle(20, 0, 0.5);

_sprite.graphics.moveTo(mouseX ,mouseY);
_sprite.addEventListener(MouseEvent.MOUSE_MOVE, mmove);

}
public function up(event:MouseEvent):void
{
_sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mmove);

}
}
}

Без этого _sprite.graphics.drawRect(0, 0, 600, 400); четырехугольника рисовать просто отказывается , ошибки ни какой не возникает . Как я понял что Спрайтом рисовать можно только на Спрайте ? Пававильно ли ? И если так то каким образом мне этот спрайт четырехугольник нарисовать на сцене не програмно (так для справки) ? ни на каком из 2х типов не рисует (Графика , Мувиклип) !
И как если и рисовать Rect програмно то как к нему достучаья до ....alpha= ?

Gaen
02.03.2011, 19:27
Прямоугольник рисуется для того, чтобы спрайт мог реагировать на мышь. Можно создать спрайт с прямоугольником (в т. ч. не программно), чтобы слушать мышиные события, а сверху положить другой спрайт, в котором будут рисоваться линии.

Кирилл63
02.03.2011, 20:01
Спасибо ! Ситуация прояснилась !

in4core
02.03.2011, 22:41
чего чего ?

var sh:Shape = new Shape();
sh.graphics.lineStyle(1,0);
sh.graphics.moveTo(100,100);
sh.graphics.lineTo(0 , 0);
addChild(sh);

и никаких четырех - угольников

КорДум
02.03.2011, 22:57
in4core, внимательно вникните в код, а потом в ответ от GAIKER.

in4core
02.03.2011, 23:50
Объясните зачем нужен Четырехугольник при простом рисования линии Название темы - должно раскрывать суть вопроса)))

tsarapkabel
03.03.2011, 01:25
Зачем drawRect при рисовании линии?
Можно в спрайт:
var sprite:Sprite = new Sprite();
sprite.graphics.lineStyle(3, 0x0);
sprite.graphics.lineTo(150, 150);
addChild(sprite);

Или я тоже что-то не понимаю...

bav
03.03.2011, 01:46
tsarapkabel, тоже. У Кирилла прослушка мыши вешается на _sprite, следовательно, если от изначально пуст, реакции на мышь не последует. Кирилл63, можно down() и up() повесить на stage, тогда рисование прямоугольника не потребуется. Только сначала нужно дождаться появления stage.