Flex ScrollBars - PullRequest
       36

Flex ScrollBars

2 голосов
/ 14 июня 2011

У меня проблема с отображением полос прокрутки для моего приложения Flex ... Я попробовал простое базовое приложение с холстом, но полосы прокрутки никогда не появляются в окне браузера, хотя холст намного больше, чем умещается на экране. Может кто-нибудь, пожалуйста, помогите? Вот мой код:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <mx:Canvas id="MyCanvas" height="2500" width="2000" verticalScrollPolicy="auto" 
    horizontalScrollPolicy="auto" backgroundColor="black" symbolColor="#000000"
    contentBackgroundColor="#080808"/>

    </s:Application>

Ответы [ 3 ]

4 голосов
/ 14 июня 2011

Вы хотите полосу прокрутки на холсте? Или в вашем основном приложении? Если вам нужны полосы прокрутки на вашем холсте, просто добавьте контент, который выходит за пределы высоты и ширины холста. Это «волшебным образом» добавит их, потому что такова роль компонентов MX / Halo.

Если вам нужны полосы прокрутки в вашем основном приложении, вам нужно будет добавить их вручную, используя компонент скроллера и группу. Концептуально примерно так:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

<s:Scroller height="100" width="100">
 <s:Group width="100%" height="100%" clipAndEnableScrolling="true">
    <mx:Canvas id="MyCanvas" height="2500" width="2000" verticalScrollPolicy="auto" 
    horizontalScrollPolicy="auto" backgroundColor="black" symbolColor="#000000"
    contentBackgroundColor="#080808"/>

 </s:Group>

</s:Scroller>

    </s:Application>

По моему опыту, вам нужно указать фиксированную высоту и / или ширину на скроллере для отображения полос прокрутки. Также обязательно закрепите clipAndenableScrolling на группе внутри скроллера, иначе содержимое будет отображаться за пределами области просмотра скроллера - что отчасти противоречит цели.

Хорошая информация от Adobe.

1 голос
/ 06 июня 2012

Я получил это, чтобы работать просто отлично, используя скроллер / группу вокруг моих приложений mxml, я попробовал кто-то еще скин скин скроллера def, но это не сработало.

Главное, чтобы все высоты и ширины были установлены на 100% для приложения, скроллера и группы.

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx"
           width="100%" height="100%>
<s:Scroller height="100%" width="100%" horizontalScrollPolicy="on" verticalScrollPolicy="on">
<s:Group left="0" right="0" top="0" bottom="0">
     <!--...mxml....-->
</s:Group>
</s:Scroller>
</s:Application>
0 голосов
/ 14 июня 2011

В Flex 4+ (spark) вы больше не используете scrollPolicies.Холст MX по-прежнему работает, поэтому, если содержимое холста вырастет за пределы 2500x2000, оно будет прокручиваться.

Чтобы у всего приложения было скроллер, вам нужно создать обложку для приложения и обернуть «группу содержимого»tag.

См. http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf62d75-7fff.html для получения дополнительной информации о добавлении скроллера в приложение Spark

...