Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   s:Panel maxWidth=20000 не работает! (http://www.flasher.ru/forum/showthread.php?t=147271)

Alex144 30.11.2010 19:06

s:Panel maxWidth=20000 не работает!
 
Проблема в следующем - по умолчанию во Flex 4 есть константа UIComponent.DEFAULT_MAX_WIDTH = 10000 пикселов, из которой берется значение максимальных размеров компонентов если не задан параметр maxWidth = ... , в моем примере я делаю масштабируемое поле 20000 на 20000 - при этом рисованые примитивы масштабируются нормально , а вот рамка от Panel застывает на 10000 и дальше не масштабируется - пример можно посмотреть тут http://www.ams64.ru/swf/path.swf

Может кто уже знает как решить эту проблему??? Help!!!!

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

<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.rpc.events.ResultEvent;
        import mx.rpc.events.FaultEvent;
                import mx.core.FlexGlobals;
                import mx.controls.*;
                import mx.events.*;
                import mx.graphics.SolidColor;

                [Bindable]
        public var PS:Number = 1;

                [Bindable]
        public var PAN:Number = 500;

                private function changeSize():void
                {
                        PS = hSlider.value/50;
                        PAN = hSlider.value*10;
                }
    ]]>
</fx:Script>

<mx:VDividedBox id="hdivbox" width="100%" height="100%"  maxWidth="20000">
  <mx:HBox width="1000" height="60">
                <mx:HSlider id="hSlider" width="500" minimum="0" maximum="2000" value="50" dataTipPlacement="top" tickColor="black" snapInterval="1" tickInterval="1" labels="['0%','1000%']" allowTrackClick="true" liveDragging="true" change="changeSize();"/>
  </mx:HBox>

<mx:Canvas id="help" label="Help" width="100%" height="100%" maxWidth="20000" maxHeight="20000" horizontalScrollPolicy="on" verticalScrollPolicy="on">
    <s:Panel id="p1" title="UIComponent.DEFAULT_MAX_WIDTH={UIComponent.DEFAULT_MAX_WIDTH} maxWidth={p1.maxWidth} ,а реально бордюр заканчивается на 10000 - а мне надо 20000" height="{PAN}" width="{PAN}"          maxWidth="20000" maxHeight="20000" > <!--  creationComplete="complete()"-->

        <s:Path scaleX="{PS}" scaleY="{PS}" data="M 100 100 L 100 200 L 200 200 L 200 100 Z">
            <!-- Define the border color of the rectangle. -->
            <s:stroke>
                  <s:SolidColorStroke color="0x888888" weight="0.5"/>
            </s:stroke>
        </s:Path>
        <s:Path scaleX="{PS}" scaleY="{PS}" data="M 300 300 L 300 400 L 400 400 L 400 300 Z">
            <!-- Define the border color of the rectangle. -->
            <s:stroke>
                  <s:SolidColorStroke color="0x888888"/>
            </s:stroke>
        </s:Path>
    </s:Panel>
</mx:Canvas>
</mx:VDividedBox>


ShockWave512 01.12.2010 01:52

написать свой клаcс, на основе UIComponent?

alatar 01.12.2010 11:22

Помимо компонента, скин у него тоже имеет свои ограничения на размер.
Позвольте спросить, а нафига это извращение нужно? Или это задел на будущее, когда мониторы будут с разрешением 35555х20000?

BeDLiNt 01.12.2010 12:30

Зачееем?? У вас есть экран с разрешением 20 000 x 20 000 ?

ShockWave512 01.12.2010 13:12

а если отключить cashAsBitmap ?

alatar 01.12.2010 13:14

Цитата:

а если отключить cashAsBitmap ?
1. По-умолчанию он выключен.
2. Максимальные размеры битмапы меньше, чем 10000х10000.
3. При чем тут вообще cashAsBitmap?

ShockWave512 01.12.2010 13:25

теперь могу себе сказать - "я это попробовал" :)

Alex144 01.12.2010 16:04

Мда... Я думал тут есть знатоки Flexa ....

20000х20000 это просто полигон для отрисовки плана объекта в масштабе ....
в принципе все работает кроме дурацкой рамки от панели...

кто нибудь пробовал задавать вопросы в техподдержку адобба - как это сделать?

ShockWave512 01.12.2010 16:07

Цитата:

Сообщение от Alex144 (Сообщение 953955)
кто нибудь пробовал задавать вопросы в техподдержку адобба - как это сделать?

думаешь там есть знатоки Flexa?

alatar 01.12.2010 16:18

Цитата:

как это сделать?
Я вам уже написал. В spark компонентах размер, в основном, определяется параметрами его скина. То, что вы поменяли у maxWidth у компонента, еще ничего не значит (он-то как раз увеличивается), а вот у его скина maxWidth, так и остался 10000. Вот он и не увеличивается.

Добавлено через 13 минут
Цитата:

20000х20000 это просто полигон для отрисовки плана объекта в масштабе ....
Для таких вещей обычно применяются алгоритмы которые применяются в картах и играх с большими уровнями. К тому же, что мешает масштабировать сам план, а не панель в которой он отображается?


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

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