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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.01.2013, 00:55
Riki вне форума Посмотреть профиль Отправить личное сообщение для Riki Найти все сообщения от Riki
  № 1  
Ответить с цитированием
Riki

Регистрация: Jul 2012
Сообщений: 48
По умолчанию Последовательное рисование линий

Вопрос: есть такая задача, имеем белый лист, тыкаем куда угодно, появляется точка, отводим мышку и появляется линия, и изменяет свой размер(и положение) пока двигаем мышку, после повторного нажатия, вновь появляется точка, и эти 2 точки соединяются линией, и заново отводим курсор и появляется линия.....



Уже битых 2 часа маюсь, но не могу сделать, хелпаните)

Старый 17.01.2013, 01:07
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Пользуйтесь методами класса Graphics (moveTo, lineTo и т.д). При клике запоминаем очередную точку. На MOUSE_MOVE вешаем слушатель, в котором отрисовываем линии между сохраненными точками и последнюю линию ведем к текущим координатам курсора.

Старый 17.01.2013, 01:08
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 3  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
А что уже сделали?
Тут над схитрить и использовать два слоя - временный для перерисовки линии и основной, где идет фиксация рисунка.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 17.01.2013, 01:12
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 4  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Да, GBee дело говорит, совершенно незачем каждый раз отрисовывать все линии.

Старый 17.01.2013, 01:24
Riki вне форума Посмотреть профиль Отправить личное сообщение для Riki Найти все сообщения от Riki
  № 5  
Ответить с цитированием
Riki

Регистрация: Jul 2012
Сообщений: 48
Вот главный вопрос, это как мне различить, мувиклипы, добавленные таким образом:
Код AS3:
function MouseDown(e:MouseEvent):void
{
	var mc:Symbol = new Symbol();
	addChild(mc);
	mc.x = mouseX;
	mc.y = mouseY;
}
Я пытался как-то использовать mc.name. Но как бы используя его загнать эти mc в массив, я не знаю.

Старый 17.01.2013, 01:38
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Вот можно посмотреть:

Код AS3:
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.display.Shape;
import flash.display.Sprite;
 
var pointFrom:Point;
var pointTo:Point = new Point();
 
var layerBackground:Sprite = new Sprite();
var layerCanvas:Shape = new Shape();
var layerDraw:Shape = new Shape();
 
layerBackground.graphics.beginFill(0xffffff);
layerBackground.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
layerBackground.graphics.endFill();
 
addChild(layerBackground);
addChild(layerCanvas);
addChild(layerDraw);
 
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
 
function onMouseDown(event:MouseEvent):void
{
	if (!pointFrom)
	{
		pointFrom = new Point(event.stageX, event.stageY);
	}
 
	addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
 
function onMouseMove(event:MouseEvent):void
{
	pointTo.x = event.stageX;
	pointTo.y = event.stageY;
 
	redrawNewLine();
}
 
function onMouseUp(event:MouseEvent):void
{
	addNewLine();
 
	pointFrom.x = pointTo.x;
	pointFrom.y = pointTo.y;
 
	removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
 
function redrawNewLine():void
{
	layerDraw.graphics.clear();
	layerDraw.graphics.lineStyle(1, 0xf00000);
	layerDraw.graphics.moveTo(pointFrom.x, pointFrom.y);
	layerDraw.graphics.lineTo(pointTo.x, pointTo.y);
}
 
function addNewLine():void
{
	layerDraw.graphics.clear();
	layerCanvas.graphics.lineStyle(3, 0x70f000);
	layerCanvas.graphics.moveTo(pointFrom.x, pointFrom.y);
	layerCanvas.graphics.lineTo(pointTo.x, pointTo.y);
}
__________________
Поймай яблоко 2!

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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