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

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

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

Регистрация: May 2007
Сообщений: 8
Question Своеобразный Redraw при использовании addChild

Как, при, допустим, изменении размера Flash Player'a Shape (нарисованый скриптом) всегда находился в нижнем правом углу и не оставлял после себя след?

addChildAt и removeChild не подходит Дело в том, что есть класс, который рисует этот Shape, при изменении размера окна Flash Player'a рисуется новый Shape - по логике он должен автоматом убивать предыдущий и ложится на его место, ведь z-order остаётся постоянным.

Старый 09.06.2007, 20:54
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
а почему бы не сохранять ссылку на отрисованный Shape и не делать ему clear перед новой отрисовкой?

P S А когда-то я смеялся над паскальщиками на олимпиаде по программированию, когда у меня во флеше шарик летал, а у них в паскале оставлял за собой след
__________________
4am is time to rock

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

Регистрация: May 2007
Сообщений: 8
А зачем ссылку? Ведь раньше с createEmptyMovieClip всё работало что там был мувик, что сейчас один и тот же объект… Может есть какой-то попроще выход? Shape то не один и все внутри разных Sprite'ов.

Старый 09.06.2007, 22:23
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
а почему нужно именно перерисовывать а не двигать?
__________________
4am is time to rock

Старый 09.06.2007, 23:32
Y_Vitaly вне форума Посмотреть профиль Отправить личное сообщение для Y_Vitaly Найти все сообщения от Y_Vitaly
  № 5  
Ответить с цитированием
Y_Vitaly

Регистрация: May 2007
Сообщений: 8
Потому-что Shape не растягивается и не увеличивается (если б так - то линии становились бы толстыми) - он просто перерисовывается под новый размер окна.

Старый 10.06.2007, 07:56
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 6  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Советую выложить пример, так как не понятно что ты именно хочешь

Старый 10.06.2007, 14:08
Y_Vitaly вне форума Посмотреть профиль Отправить личное сообщение для Y_Vitaly Найти все сообщения от Y_Vitaly
  № 7  
Ответить с цитированием
Y_Vitaly

Регистрация: May 2007
Сообщений: 8
Непосредственно рисование:
Код:
// Create a Sprite, positioned at x:0 and y:0.
var topGUISprite:Sprite = new Sprite();
addChild(topGUISprite);

// Create a top GUI Shape.
var topGUIShape:Shape = new Shape();
topGUISprite.addChild(topGUIShape);

// Begin drawing top GUI.
// 1.
topGUIShape.graphics.beginFill(mainColor);
// x0, y0.
topGUIShape.graphics.moveTo(realX, realY);
topGUIShape.graphics.lineTo(realWidth, realY);
// 2.
topGUIShape.graphics.lineTo(realWidth, realHeight-25);
// 3.
topGUIShape.graphics.lineStyle(1, darkLine, 100);
topGUIShape.graphics.lineTo(realX, realHeight-25);
// 4.
topGUIShape.graphics.lineStyle(1, mainColor, 100);
topGUIShape.graphics.lineTo(realX, realY);
topGUIShape.graphics.endFill();
Обработчик события:
Код:
// Stage Listener.
stage.addEventListener(Event.RESIZE, resizeHandler);
function resizeHandler(event:Event) {
	contentUpdater();
}
Внутри contentUpdater(); вызывается метод, тело которого описано выше.

Пример находится тут


Последний раз редактировалось Y_Vitaly; 15.06.2007 в 00:01.
Старый 14.06.2007, 00:28
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
проблема имхо только в том, что addChildAt не убивает находящийся на этой глубине объект (как было c createMovieClip или attachMovie)
не вижу почему в GUI не держать ссылки на все графические элементы, создать их в конструкторе, а в методах пересоздавать или перерисовывать, это уж как удобнее.. GUI.zip


Последний раз редактировалось silin; 14.06.2007 в 00:30.
Старый 14.06.2007, 13:59
Timerlan вне форума Посмотреть профиль Отправить личное сообщение для Timerlan Найти все сообщения от Timerlan
  № 9  
Ответить с цитированием
Timerlan

Регистрация: Jan 2006
Сообщений: 103
насколько я помню по мануалу ( если я его правильно понял), то addChildAt добавляя новый объект на какую-то глубину, переводит старый объект этой глубины на более высокий уровень. Там даже иллюстрации к этому есть

Старый 14.06.2007, 14:45
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Y_Vitaly, отредактируйте свой пост и оформите код тегами [code][/code].

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

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

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


 


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


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