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

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

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

Регистрация: Jun 2013
Сообщений: 22
По умолчанию вторая точка линии двигается вслед за объектом

Подскажите как сделать такой манёвр-есть начало линии "A" в точке (250,250) и есть конец "B", который совпадает к центром круга(100,100).Круг двигается вправо-влево с помощью стрелок.
Как заставить конец "B" линии двигаться за кругом?
Подозреваю что тут либо ENTER_FRAME, либо событие мыши, но пока не получается сделать привязку.

Добавлено через 18 минут
Нашёл решение вроде бы, но возник вопрос. Линия создаётся без объявления Shape= new Shape();, addChild() также не используется почему-то + нет самого имени графического объекта. Это нормально? ошибок при компиляции вроде бы не пишет, но всё же есть небольшие сомнения в правильности). Вот код:

Код AS3:
import flash.display.Shape;
import flash.events.Event;
 
var Lmove:Boolean =false;
var Rmove:Boolean =false;
//круг
var mCirc:circle = new circle();
mCirc.x = 100;
mCirc.y = 100;
addChild(mCirc);
 
 
stage.addEventListener(KeyboardEvent.KEY_DOWN, onDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onUp);
 
function onDown (e:KeyboardEvent):void{
	if (e.keyCode== 37){Lmove = true}
	else if (e.keyCode== 39){Rmove = true};
	trace(e.keyCode);
}
 
function onUp (e:KeyboardEvent):void{
	if (e.keyCode== 37){Lmove = false}
	else if (e.keyCode== 39){Rmove = false};
}
 
stage.addEventListener(Event.ENTER_FRAME, loop);
function loop (e:Event):void{
	if(Lmove){mCirc.x-=5}
	else if(Rmove){mCirc.x+=5}
 
//линия
 
graphics.clear()
graphics.lineStyle(3, 0x00ff00);
graphics.moveTo(250,250);
graphics.lineTo(mCirc.x,mCirc.y);
}


Последний раз редактировалось funkypanky; 19.06.2013 в 04:49.
Старый 19.06.2013, 12:54
Ёлочка вне форума Посмотреть профиль Отправить личное сообщение для Ёлочка Найти все сообщения от Ёлочка
  № 2  
Ответить с цитированием
Ёлочка
 
Аватар для Ёлочка

Регистрация: Jun 2013
Адрес: Воронеж
Сообщений: 101
В конце своего кода напиши trace( this ); и тогда ты узнаешь, где ты линию нарисовал.
Запись graphics.clear() и т.д. эквивалентна записи this.graphics.clear(). Ты нарисовал линию на MainTimeLine (он же root) - это основная сцена ролика.
__________________
В лесу родилась ёлочка, в лесу она росла! Зимой и летом...

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

Регистрация: Jun 2013
Сообщений: 22
Цитата:
Сообщение от Ёлочка Посмотреть сообщение
В конце своего кода напиши trace( this ); и тогда ты узнаешь, где ты линию нарисовал.
Запись graphics.clear() и т.д. эквивалентна записи this.graphics.clear(). Ты нарисовал линию на MainTimeLine (он же root) - это основная сцена ролика.
окей, пробну)

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

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

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


 


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


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