![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2007
Сообщений: 8
|
Как, при, допустим, изменении размера Flash Player'a Shape (нарисованый скриптом) всегда находился в нижнем правом углу и не оставлял после себя след?
addChildAt и removeChild не подходит Дело в том, что есть класс, который рисует этот Shape, при изменении размера окна Flash Player'a рисуется новый Shape - по логике он должен автоматом убивать предыдущий и ложится на его место, ведь z-order остаётся постоянным. |
|
|||||
|
ветеран форума
|
а почему бы не сохранять ссылку на отрисованный Shape и не делать ему clear перед новой отрисовкой?
P S А когда-то я смеялся над паскальщиками на олимпиаде по программированию, когда у меня во флеше шарик летал, а у них в паскале оставлял за собой след ![]()
__________________
4am is time to rock |
|
|||||
|
Регистрация: May 2007
Сообщений: 8
|
А зачем ссылку? Ведь раньше с createEmptyMovieClip всё работало что там был мувик, что сейчас один и тот же объект… Может есть какой-то попроще выход? Shape то не один и все внутри разных Sprite'ов.
|
|
|||||
|
ветеран форума
|
а почему нужно именно перерисовывать а не двигать?
__________________
4am is time to rock |
|
|||||
|
Регистрация: May 2007
Сообщений: 8
|
Потому-что Shape не растягивается и не увеличивается (если б так - то линии становились бы толстыми) - он просто перерисовывается под новый размер окна.
|
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Советую выложить пример, так как не понятно что ты именно хочешь
|
|
|||||
|
Регистрация: 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();
}
Пример находится тут Последний раз редактировалось Y_Vitaly; 15.06.2007 в 00:01. |
|
|||||
|
проблема имхо только в том, что addChildAt не убивает находящийся на этой глубине объект (как было c createMovieClip или attachMovie)
не вижу почему в GUI не держать ссылки на все графические элементы, создать их в конструкторе, а в методах пересоздавать или перерисовывать, это уж как удобнее.. GUI.zip Последний раз редактировалось silin; 14.06.2007 в 00:30. |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 103
|
насколько я помню по мануалу ( если я его правильно понял), то addChildAt добавляя новый объект на какую-то глубину, переводит старый объект этой глубины на более высокий уровень. Там даже иллюстрации к этому есть
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Y_Vitaly, отредактируйте свой пост и оформите код тегами [code][/code].
|
![]() |
![]() |
Часовой пояс GMT +4, время: 05:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|