При добавлении на холст компонент изображения Flex, а не контейнер холста - PullRequest
1 голос
/ 29 июля 2010

Я добавляю компонент flex image в компонент mx: canvas с довольно большим изображением.У меня политики горизонтальной и вертикальной прокрутки установлены на «on», но когда я добавляю изображение на холст, оно не расширяется, чтобы показать все изображение (полосы прокрутки не активированы).

Кто угодноеще есть эта проблема.

Код довольно прост:

<mx:Canvas  id="myCanvas" minWidth="0" minHeight="0"  horizontalScrollPolicy="on" verticalScrollPolicy="on">



    </mx:Canvas>

и скрипт, добавляющий изображение

var newImg:Image = new Image();
newImg.source = $value.sourceImg;
newImg.x = $value.positionX;
newImg.y = $value.positionY;
newImg.scaleX = $value.scaleX * _scaleRatio ;
newImg.scaleY = $value.scaleY * _scaleRatio;
newImg.rotation = $value.rotation;
myCanvas.addChild(newImg);

Ответы [ 4 ]

1 голос
/ 29 июля 2010

Хорошо, поэтому мне пришлось использовать clipCOntent = true.У меня было clipContent = "false", я думал, что это означает, что оно будет обрезать изображение, и все, что находится за пределами границ, можно просто прокрутить, но на самом деле оно просто обрезает его и не предлагает прокрутки.

0 голосов
/ 29 июля 2010

Создайте первый холст (viewCanvas) и поместите в него другой холст (imageCanvas).

Установите политики прокрутки на imageCanvas на «Выкл».Это должно работать, и viewCanvas должен иметь полосы прокрутки. Примечание , что ширина / высота не указана на изображении Canvas или изображении с кодом ниже

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Canvas id="viewCanvas" x="95" y="65" width="169" height="159">

        <mx:Canvas id="imageCanvas" x="0" y="0" horizontalScrollPolicy="off" verticalScrollPolicy="off">
            <mx:Image x="0" y="0">
                <mx:source>http://www.beach-holiday.cn/beach-holiday/pics/2009/09/florida-fort-lauderdale.jpg</mx:source>
            </mx:Image>
        </mx:Canvas>

    </mx:Canvas>

</mx:Application>
0 голосов
/ 29 июля 2010

Попробуйте использовать canvas.rawChildren.addChild (img) вместо canvas.addChild (img) .Раньше это работало для меня, иначе вам нужно подключиться к системе измерения компонентов Flex - но это очень редко необходимо.

Приветствия

0 голосов
/ 29 июля 2010

Было бы полезно, если бы вы опубликовали свой код, но не видя его, я бы рекомендовал установить minWidth = "0" на холсте. Это старый трюк для принудительного переизмерения холста, чтобы он правильно отображал полосы прокрутки. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...