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

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

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

Регистрация: Jul 2008
Сообщений: 912
По умолчанию Вернуть вершины Shape

Есть Shape состоящий из нескольких соединённых в многоугольник линий, как узнать вершины этого многоугольника?
Дело в том, что в FlashIDE рисуя линиями например - фигура преобразовывается в Shape. А Shape не может иметь детей и до графики не добраться, но очень нужно.


Последний раз редактировалось Sintesis; 24.10.2012 в 01:20.
Старый 24.10.2012, 01:43
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Вся графика в Shape хранится в его graphics.

Добавлено через 2 минуты
Можно получить вершины с помощью библиотеки swfvector.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Jul 2008
Сообщений: 912
Цитата:
Сообщение от alatar Посмотреть сообщение
Вся графика в Shape хранится в его graphics.
Это понятно, но graphics ничего не возвращает и присвоить её спрайту нельзя graphics в Shape только для чтения, спасибо за ссылку, плюсую!

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
graphics ничего не возвращает и присвоить её спрайту нельзя graphics в Shape только для чтения
Ну, это не так. Есть Graphics#copyFrom()
Но к Вашему случаю это не относится, как я понимаю. Вы же о рисунке во Flash IDE говорите? Уж не знаю, как Вы получаете к нему доступ как к экземпляру Shape... думаю что никак.
__________________
Reality.getBounds(this);

Старый 24.10.2012, 16:29
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 5  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Ну, это не так. Есть Graphics#copyFrom()
Но к Вашему случаю это не относится, как я понимаю. Вы же о рисунке во Flash IDE говорите? Уж не знаю, как Вы получаете к нему доступ как к экземпляру Shape... думаю что никак.
Вообще с IDE только несколько дней работаю, всегда в FD всё делал. Но решил попробовать.
Создал символ Lvl_01 и добавил такое действие к нему:
Код AS3:
var lvl_01:Lvl_01 = new Lvl_01();
trace(lvl_01.getChildAt(0))
выводит Shape, так что Shape это не рисунок и к нему не добраться кодом?

Старый 24.10.2012, 14:43
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 6  
Ответить с цитированием
gagaga

Регистрация: Apr 2012
Сообщений: 239
наследоваться от шейп, определять массив с вершинами и запоминать туда вершины в процессе рисования

Старый 24.10.2012, 16:58
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 7  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Цитата:
Сообщение от gagaga Посмотреть сообщение
наследоваться от шейп, определять массив с вершинами и запоминать туда вершины в процессе рисования
Во! А это совсем прекрасная идея! Вообще хотел использовать IDE для того, чтоб рисовать полигоны для Box2D, но зачем это нужно если можно сделать простую рисовалку которая складывает вершины в массив, а потом это ещё можно и в XML файл сохранить и использовать когда нужно! Спасибо!

Старый 24.10.2012, 16:58
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 8  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Код AS3:
(lvl_01 as Shape).graphics
__________________
adobe AS3 manual

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

Регистрация: Jul 2008
Сообщений: 912
Цитата:
Сообщение от strangedk Посмотреть сообщение
Код AS3:
(lvl_01 as Shape).graphics
Ну от этого толку мало, всё-равно к рисунку не дотягиваемся.

Добавлено через 16 минут
Цитата:
Сообщение от gagaga Посмотреть сообщение
сейчас угадаю... редактор уровней для игры с физикой делать лень? =) я тоже через это прошел...
Добавлено через 51 секунду
угадал
Не лень), просто не догадливый! Но всё равно теперь с IDE разобраться захотелось.

Цитата:
А вы trace магически способом сделали или все таки кодом?
Сделал так нарисовал инструментом Line 4 линии, выделил, создал символ - получился клас наследник MovieClip, нажал правой кнопкой мыши в рабочей области, выбрал в контекстном меню "Действие" ввёл там этот код:
Код AS3:
var lvl_01:Lvl_01 = new Lvl_01();
trace(lvl_01.getChildAt(0))
ещё сделал основным классом проекта вот такой:
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
 
	public class Redactor extends MovieClip {
 
		public function Redactor() {
 
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(_event:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
 
		}
	}
}

Старый 24.10.2012, 16:58
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
выводит Shape, так что Shape это не рисунок и к нему не добраться кодом?
А вы trace магически способом сделали или все таки кодом?

Во флеш можно создать DisplayObject двумя способами.
1. Инстанцировать соответствующий класс.
2. Задать непосредственно в swf. Тег DefineShape / DefineSprite.\
В любом случае, если эти DisplayObject попадут в display list, на них можно будет получить ссылку ("добраться кодом").
__________________
משיח לא בא
משיח גם לא מטלפן

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

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

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


 


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


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