![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 22
|
Попробовал я дополнить пример тем, что мне надо. Вот что получилось.
Жирным выделена суть - момент рисования так сказать. Попробуйте запустите.. видно что ни о каком рисовании речи не идет.. точки успевают рисоваться одна через 10. Видать надо идти другим путем... каким? import flash.display.BitmapData;
import flash.geom.Point;
var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC);
var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc_1.attachBitmap(myBitmapData, this.getNextHighestDepth());
var mc_2:MovieClip = createRectangle(1, 1, 0xFF0000);
var destPoint:Point = new Point(myBitmapData.rectangle.x, myBitmapData.rectangle.y);
var currPoint:Point = new Point();
mc_1.onEnterFrame = function() {
currPoint.x = mc_2._x;
currPoint.y = mc_2._y;
if(myBitmapData.hitTest(destPoint, 255, currPoint)) {
myBitmapData.setPixel(currPoint.x, currPoint.y, 0x00222222);
}
}
mc_2.startDrag(true);
function createRectangle(width:Number, height:Number, color:Number):MovieClip {
var depth:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
mc.beginFill(color);
mc.lineTo(0, height);
mc.lineTo(width, height);
mc.lineTo(width, 0);
mc.lineTo(0, 0);
return mc;
}
|
|
|||||
|
Регистрация: Sep 2006
Сообщений: 22
|
Dendroid
А.. эээ.. а как с помощью lineTo можно к примеру овал нарисовать? Можете дать ссылочку на пример. Просто насколько я понимаю.. таким образом я смогу рисовать только прямые линии... или нет? |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 316
|
для переноса на битмап лучше использовать совет от Dendroid (пост 20)
пример рисования фигур вы можете найти у себя (flash8) C:\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\DrawingAPI |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 22
|
Кстати, вот примерно то, что мне надо
http://www.webmastera.org/painter.php/ только мне надо попроще ![]() Пошел смотреть пример "у себя" ![]() |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 22
|
Глянул пример из C:\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\DrawingAPI
Там же лишь фигуры... а кривые это немного иное... или они аналогично создаются? |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 22
|
По идее, наверное действительно... можно на маусдаун начинать по ентерфрейм рисовать линии от начальной до текущей точки... если они отличаются... в итоге если быстро мышкой не елозить то будет плавная линия, а если быстро, то и в видимых мною до этого редакторах она становится ломаной.
Это нормальный подход? |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 316
|
вы спрашивали про овал, и ответ про него получили. кривые рисуются спомощью MovieClip.curveTo().
|
|
|||||
|
Регистрация: Dec 2005
Сообщений: 316
|
я уже не помню, в чем была проблема но вот самый простой код наверно
var down:Boolean = false;
_root.onMouseDown = function() {
down = true;
_root.lineStyle(3, Number(Math.round(Math.random()*16777215)));
_root.moveTo(_xmouse, _ymouse);
};
_root.onMouseMove = function() {
if (down) {
_root.lineTo(_xmouse, _ymouse);
}
};
_root.onMouseUp = function() {
down = false;
};
|
|
|||||
|
Регистрация: Sep 2006
Сообщений: 22
|
Во блин! Оно. Вот это мне и надо
По сути.. здесь так и есть... как я предположил.. на маусдаун начинаем циклично (правда здесь не на ентерфрейм, а на маусмув, что логичнее) рисовать прямые до текущей точки ![]() Все намного проще, чем я думал ![]() Спасибо всем ![]() |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 316
|
забавно выходит если заменить
_root.lineStyle(3, Number(Math.round(Math.random()*16777215))); на _root.lineStyle(Math.random()*5, Number(Math.round(Math.random()*16777215))); -------------- пиши на мыло если нужно еще что-то из параметров подогнать, я щас тоже рисовалкой занимаюсь. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|