Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как содержимое объекта сделать фиксированным, если у самого объекта размеры меняются? (http://www.flasher.ru/forum/showthread.php?t=106765)

Loshadka 18.01.2008 13:59

Как содержимое объекта сделать фиксированным, если у самого объекта размеры меняются?
 
Немного поясню.
1. Есть одна большая флешка
width: 100%; height: 100%
2. В ней есть объект, у которого, скажем
_width = Stage.width / 2;
_height = Stage.height;
3. В этом объекте есть другие объекты.

И вопрос, как сделать так, чтобы внутренние объекты не растягивались при изменении размеров их родителя?

Сейчас сам склоняюсь к решению поместить все объекты в _root, и тогда без проблем все это можно будет реализовать, но проект достаточно большой и хотелось бы сохранить четкую и логичную структуру во всем.

з.ы. быстренько накидал пример для иллюстрации: http://ejika.net/test.html

Код примера:
Код:

_root.onLoad = function() {
        var stageListener:Object = new Object();
        stageListener.onResize = resizing();
        Stage.scaleMode = "noScale";
        Stage.addListener(stageListener);
}

_root.onEnterFrame = function() {
        _root.sText.text = Stage.width + ", " + Stage.height;
        _root.sText._x = Stage.width - _root.sText._width;
        _root.sText._y = Stage.height - _root.sText._height;
       
        _root.oIcons._width  = Stage.width / 2;
        _root.oIcons._height = Stage.height;
}


iNils 18.01.2008 17:04

Считать _xscale и _yscale родителя и скорректировать по ним _xscale и _yscale потомка.

INK• 21.01.2008 03:39

Цитата:

Сообщение от iNils
Считать _xscale и _yscale родителя и скорректировать по ним _xscale и _yscale потомка.

ну это уж очень деревяный способ, учитывая то что родитель как раз состоит и потомков.

iNils 21.01.2008 03:54

Цитата:

Сообщение от INK•
ну это уж очень деревяный способ, учитывая то что родитель как раз состоит и потомков.

Вот именно потому, что родитель и состоит из потомков, надо использовать _xscale и _yscale.
Я так понимаю, что кроме бесполезной критики предложить больше нечего?

INK• 21.01.2008 04:07

Вы, Дедушка Мороз не нервничайте пожалуйста.
А предложить всегда есть чего.

Я бы вот что сделал.
Выделил бы в том что вы называете "родитель" два слоя.
первый слой это контейнер в который загнал бы эти ваши квадраты.
второй слой маска поверх контейнера, шириной и высотой которой уже бы и манипулировал относительно размера видемой области.
Тоесть. То что мы видим всегда будет заданого размера (как видно из вашего примера 50% ширины экрана) а сами квадратики масштабироватся при этом не будут.

iNils 21.01.2008 04:13

Бесполезная конструкция, учитывая, что координаты объектов потомков при масшабировании меняются.

INK• 21.01.2008 04:27

насколько я понял Loshadka хочет добится такого эфекта
http://ink.envisionext.com/tmp/stage.html

Loshadka 21.01.2008 12:07

Спасибо всем за помощь. Проблема решена. Она была в моей математике, т.к. я нормально не мог написать уравнение вычисляющее процентное отношение потомка. :(
Выложил рабочий пример: http://ejika.net/test.html

Код:

_root.onEnterFrame = function() {

    _root.oIcons._width  = Stage.width;
    _root.oIcons.oObj._xscale =  100 / _root.oIcons._xscale * 100;
}



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

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