![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2010
Сообщений: 10
|
alatar - Спасибо за дельный ответ.
Можно немного по подробнее про эти алгоритмы и где посмотреть примеры? |
|
|||||
|
Суть этого подхода в том, что исходное изображение разбивается на квадраты. Для каждого уровня увеличения генерируется свой набор. Одномоментно на экране видны лишь те области, которые собственно в этот экран попадают.
Если план векторный, то это не сильно актуально. Только если план не слишком сложный. Добавлено через 1 минуту Цитата:
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 10
|
Пробовал изменить скин для панели - никакого эффекта, вот код скина
<?xml version="1.0" encoding="utf-8"?> <!-- "http://blog.flexexamples.com/2009/09/22/changing-the-text-alignment-of-a-spark-panel-title-in-flex-4/" target="_blank">http://blog.flexexamples.com/2009/09...tle-in-flex-4/ --> <s:SparkSkin name="MaxWidthPanelSkin" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" alpha.disabled="0.5" blendMode="normal" mouseEnabled="false" minWidth="131" minHeight="127" maxWidth="20000" maxHeight="20000"> <s:states> <s:State name="normal" /> <s:State name="disabled" /> <s:State name="normalWithControlBar" stateGroups="withControls" /> <s:State name="disabledWithControlBar" stateGroups="withControls" /> </s:states> <fx:Metadata> [HostComponent("spark.components.Panel")] </fx:Metadata> <fx:Script> <![CDATA[ /* Define the skin elements that should not be colorized. For panel, border and title backround are skinned, but the content area and title text are not. */ static private const exclusions:Array = ["background", "titleDisplay", "contentGroup"]; override public function get colorizeExclusions():Array { return exclusions; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { if (getStyle("borderVisible") == true) { border.visible = true; background.left = background.top = background.right = background.bottom = 1; contents.left = contents.top = contents.right = contents.bottom = 1; } else { border.visible = false; background.left = background.top = background.right = background.bottom = 0; contents.left = contents.top = contents.right = contents.bottom = 0; } dropShadow.visible = getStyle("dropShadowVisible"); var cr:Number = getStyle("cornerRadius"); if (cornerRadius != cr) { cornerRadius = cr; } super.updateDisplayList(unscaledWidth, unscaledHeight); } [Bindable] public var cornerRadius:Number; ]]> </fx:Script> <!-- drop shadow can't be hittable so it stays sibling of other graphics --> <s:RectangularDropShadow id="dropShadow" maxWidth="20000" maxHeight="20000" blurX="20" blurY="20" alpha="0.32" distance="11" angle="90" color="#000000" left="0" top="0" right="0" bottom="0" tlRadius="{cornerRadius}" trRadius="{cornerRadius}" blRadius="0" blRadius.withControls="{cornerRadius}" brRadius="0" brRadius.withControls="{cornerRadius}" /> <!-- drop shadow can't be hittable so all other graphics go in this group --> <s:Group left="0" right="0" top="0" bottom="0"> <!-- top group mask --> <s:Group id="topGroupMask" left="1" top="1" right="1" bottom="1"> <s:Rect left="0" top="0" right="0" bottom="0" maxWidth="20000" maxHeight="20000" topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}" bottomLeftRadiusX.withControls="{cornerRadius}" bottomRightRadiusX.withControls="{cornerRadius}"> <s:fill> <s:SolidColor alpha="0"/> </s:fill> </s:Rect> </s:Group> <!-- bottom group mask --> <s:Group left="1" top="1" right="1" bottom="1" id="bottomGroupMask" includeIn="normalWithControlBar, disabledWithControlBar"> <s:Rect left="0" top="0" right="0" bottom="0" maxWidth="20000" maxHeight="20000" topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}" bottomLeftRadiusX.withControls="{cornerRadius}" bottomRightRadiusX.withControls="{cornerRadius}"> <s:fill> <s:SolidColor alpha="0"/> </s:fill> </s:Rect> </s:Group> <!-- layer 1: border --> <s:Rect id="border" left="0" right="0" top="0" bottom="0" maxWidth="20000" maxHeight="20000" topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}" bottomLeftRadiusX.withControls="{cornerRadius}" bottomRightRadiusX.withControls="{cornerRadius}" > <s:stroke> <s:SolidColorStroke color="{getStyle('borderColor')}" alpha="{getStyle('borderAlpha')}" weight="1" /> </s:stroke> </s:Rect> <!-- layer 2: background fill --> <!--- Defines the appearance of the PanelSkin class's background. --> <s:Rect id="background" left="1" top="1" right="1" bottom="1" maxWidth="20000" maxHeight="20000" topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}" bottomLeftRadiusX.withControls="{cornerRadius}" bottomRightRadiusX.withControls="{cornerRadius}"> <s:fill> <!-- Defines the PanelSkin class's background fill. The default color is 0xFFFFFF. --> <s:SolidColor color="{getStyle('backgroundColor')}" alpha="{getStyle('backgroundAlpha')}" /> </s:fill> </s:Rect> <!-- layer 3: contents --> <!--- contains the vertical stack of titlebar content and controlbar --> <s:Group id="contents" left="1" right="1" top="1" bottom="1"> <s:layout> <s:VerticalLayout gap="0" horizontalAlign="justify" /> </s:layout> <s:Group id="topGroup" mask="{topGroupMask}"> <!-- layer 0: title bar fill --> <s:Rect id="tbFill" left="0" right="0" top="0" bottom="1" > <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0xE2E2E2" /> <s:GradientEntry color="0xD9D9D9" /> </s:LinearGradient> </s:fill> </s:Rect> <!-- layer 1: title bar highlight --> <s:Rect id="tbHilite" left="0" right="0" top="0" bottom="0"> <s:stroke> <s:LinearGradientStroke rotation="90" weight="1"> <s:GradientEntry color="0xEAEAEA" /> <s:GradientEntry color="0xD9D9D9" /> </s:LinearGradientStroke> </s:stroke> </s:Rect> <!-- layer 2: title bar divider --> <s:Rect id="tbDiv" left="0" right="0" height="1" bottom="0"> <s:fill> <s:SolidColor color="0xC0C0C0" /> </s:fill> </s:Rect> <!-- layer 3: text --> <!--- Defines the appearance of the PanelSkin class's title bar. --> <s:Label id="titleDisplay" maxDisplayedLines="1" left="9" right="3" top="1" bottom="0" minHeight="30" verticalAlign="middle" fontWeight="bold" textAlign="center" /> </s:Group> <!-- Note: setting the minimum size to 0 here so that changes to the host component's size will not be thwarted by this skin part's minimum size. This is a compromise, more about it here: http://bugs.adobe.com/jira/browse/SDK-21143 --> <s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0" /> <s:Group id="bottomGroup" minWidth="0" minHeight="0" includeIn="normalWithControlBar, disabledWithControlBar"> <s:Group left="0" right="0" top="0" bottom="0" mask="{bottomGroupMask}"> <!-- layer 0: control bar divider line --> <s:Rect left="0" right="0" top="0" height="1" alpha="0.22"> <s:fill> <s:SolidColor color="0x000000" /> </s:fill> </s:Rect> <!-- layer 1: control bar highlight --> <s:Rect left="0" right="0" top="1" bottom="0"> <s:stroke> <s:LinearGradientStroke rotation="90" weight="1"> <s:GradientEntry color="0xE5E5E5" /> <s:GradientEntry color="0xD8D8D8" /> </s:LinearGradientStroke> </s:stroke> </s:Rect> <!-- layer 2: control bar fill --> <s:Rect left="1" right="1" top="2" bottom="1"> <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0xDADADA" /> <s:GradientEntry color="0xC5C5C5" /> </s:LinearGradient> </s:fill> </s:Rect> </s:Group> <!-- layer 3: control bar --> <s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" minWidth="0" minHeight="0"> <s:layout> <s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="7" paddingBottom="7" gap="10" /> </s:layout> </s:Group> </s:Group> </s:Group> </s:Group> </s:SparkSkin> |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 10
|
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 10
|
я нашел в файлах SDK 4.1 UIComponent.as упоминание про дефолтный размер
public static const DEFAULT_MAX_WIDTH:Number = 10000; // When changing this constant, make sure you change // the constant with the same name in LayoutElementUIComponentUtils ![]() к тому же CANVAS нормально переваривает координаты больше 10000 - PATH рисует примитивы с любыми координатами, а вот рамка панели нифига и координаты мыши тоже стопорятся только в пределах координат панели - 10000х10000 Последний раз редактировалось Alex144; 01.12.2010 в 17:36. |
|
|||||
|
const здесь не зря. Не путайте комментарии для разработчиков SDK с документацией для разработчиков использующих SDK.
К тому же там упоминается LayoutElementUIComponentUtils. LayoutElementUIComponentUtils Цитата:
Цитата:
В LayoutElementUIComponentUtils есть слудующий код: // When changing these constants, make sure you change // the constants with the same name in UIComponent private static const DEFAULT_MAX_WIDTH:Number = 10000; private static const DEFAULT_MAX_HEIGHT:Number = 10000; Как возможный вариант, создайте в проекте пакет mx.core, скопируйте туда UIComponent и LayoutElementUIComponentUtils и поменяйте в них константы. Только удалите в обоих файлах: |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 10
|
Я исправлял везде 10000 на 20000 - не помогло.
может при компиляции можно как то влиять на эту константу или пересобрать библиотеки самого SDK? |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|