Как мне динамически позиционировать swf в flex относительно его родительского контейнера? - PullRequest
0 голосов
/ 18 февраля 2009

Как позиционировать дочерний элемент относительно его вмещающего блока?

Код:

<mx:Script>
    <![CDATA[


                    thisMap.scaleX = scaleFactor;
                    thisMap.scaleY = scaleFactor;
                    thisMap.x = thisMap.x - thisMap.mouseX * 1.3;
                    thisMap.y = thisMap.y - thisMap.mouseY * 1.3;

]]>
</mx:Script>

<mx:Box id="mapHolder" x="0" y="30">
    <mx:SWFLoader id="thisMap" source="MyWorld1.swf" />
</mx:Box>

Для доступа к этой карте нет необходимости проходить через mapHolder.

Ответы [ 2 ]

1 голос
/ 19 февраля 2009

Коробка - это контейнер, который управляет позиционированием в горизонтальной или вертикальной стопке (см. VBox или HBox). Похоже, вы пытаетесь позиционировать thisMap, как если бы он был на холсте. Попробуйте

<mx:Script>
        <![CDATA[


                                thisMap.scaleX = scaleFactor;
                                thisMap.scaleY = scaleFactor;
                                thisMap.x = thisMap.x - thisMap.mouseX * 1.3;
                                thisMap.y = thisMap.y - thisMap.mouseY * 1.3;

]]>
</mx:Script>

<mx:Canvas id="mapHolder" x="0" y="30">
        <mx:SWFLoader id="thisMap" source="MyWorld1.swf" />
</mx:Canvas>

Также я не уверен, как это будет выглядеть, располагая его относительно координат мыши ... похоже, вы пытаетесь достичь какой-то функциональности перетаскивания. Однако холст должен решить исходную проблему.

0 голосов
/ 19 февраля 2009

Я создаю функцию масштабирования. Когда пользователь щелкает thisMap, он масштабируется в точке, по которой щелкнули. Я масштабирую эту карту и корректирую масштабирование и центрирование, смещая ее координаты x, y. Это прекрасно работает в основном приложении, но я не могу понять, как поместить swf в какой-то контейнер.

...