Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.09.2006, 12:50
Fbor вне форума Посмотреть профиль Отправить личное сообщение для Fbor Найти все сообщения от Fbor
  № 21  
Ответить с цитированием
Fbor

Регистрация: 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;
}

Старый 25.09.2006, 12:52
Fbor вне форума Посмотреть профиль Отправить личное сообщение для Fbor Найти все сообщения от Fbor
  № 22  
Ответить с цитированием
Fbor

Регистрация: Sep 2006
Сообщений: 22
Dendroid
А.. эээ.. а как с помощью lineTo можно к примеру овал нарисовать?
Можете дать ссылочку на пример. Просто насколько я понимаю.. таким образом я смогу рисовать только прямые линии... или нет?

Старый 25.09.2006, 13:49
AlexSol вне форума Посмотреть профиль Отправить личное сообщение для AlexSol Найти все сообщения от AlexSol
  № 23  
Ответить с цитированием
AlexSol

Регистрация: Dec 2005
Сообщений: 316
для переноса на битмап лучше использовать совет от Dendroid (пост 20)

пример рисования фигур вы можете найти у себя (flash8)
C:\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\DrawingAPI

Старый 25.09.2006, 14:06
Fbor вне форума Посмотреть профиль Отправить личное сообщение для Fbor Найти все сообщения от Fbor
  № 24  
Ответить с цитированием
Fbor

Регистрация: Sep 2006
Сообщений: 22
Кстати, вот примерно то, что мне надо
http://www.webmastera.org/painter.php/
только мне надо попроще

Пошел смотреть пример "у себя"

Старый 25.09.2006, 14:21
Fbor вне форума Посмотреть профиль Отправить личное сообщение для Fbor Найти все сообщения от Fbor
  № 25  
Ответить с цитированием
Fbor

Регистрация: Sep 2006
Сообщений: 22
Глянул пример из C:\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\DrawingAPI
Там же лишь фигуры... а кривые это немного иное... или они аналогично создаются?

Старый 25.09.2006, 14:23
Fbor вне форума Посмотреть профиль Отправить личное сообщение для Fbor Найти все сообщения от Fbor
  № 26  
Ответить с цитированием
Fbor

Регистрация: Sep 2006
Сообщений: 22
По идее, наверное действительно... можно на маусдаун начинать по ентерфрейм рисовать линии от начальной до текущей точки... если они отличаются... в итоге если быстро мышкой не елозить то будет плавная линия, а если быстро, то и в видимых мною до этого редакторах она становится ломаной.
Это нормальный подход?

Старый 25.09.2006, 14:44
AlexSol вне форума Посмотреть профиль Отправить личное сообщение для AlexSol Найти все сообщения от AlexSol
  № 27  
Ответить с цитированием
AlexSol

Регистрация: Dec 2005
Сообщений: 316
вы спрашивали про овал, и ответ про него получили. кривые рисуются спомощью MovieClip.curveTo().

Старый 25.09.2006, 14:52
AlexSol вне форума Посмотреть профиль Отправить личное сообщение для AlexSol Найти все сообщения от AlexSol
  № 28  
Ответить с цитированием
AlexSol

Регистрация: 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;
};
и и на onMouseUp делать draw() в битмапдата

Старый 25.09.2006, 15:18
Fbor вне форума Посмотреть профиль Отправить личное сообщение для Fbor Найти все сообщения от Fbor
  № 29  
Ответить с цитированием
Fbor

Регистрация: Sep 2006
Сообщений: 22
Во блин! Оно. Вот это мне и надо По сути.. здесь так и есть... как я предположил.. на маусдаун начинаем циклично (правда здесь не на ентерфрейм, а на маусмув, что логичнее) рисовать прямые до текущей точки
Все намного проще, чем я думал
Спасибо всем

Старый 25.09.2006, 15:28
AlexSol вне форума Посмотреть профиль Отправить личное сообщение для AlexSol Найти все сообщения от AlexSol
  № 30  
Ответить с цитированием
AlexSol

Регистрация: 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, время: 00:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.