Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Проблема с получением габаритов объекта класса (http://www.flasher.ru/forum/showthread.php?t=97520)

yana_flash 22.06.2007 19:47

Проблема с получением габаритов объекта класса
 
Мое приложение состоит из главного файла main.mxml и "разложенных" в контейнеры mx:VBox и mx:HBox классов, отвечающих за элементы интерфейса:

main.mxml
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
  layout="absolute" width="100%" height="100%"
  creationComplete="startApp()">
  <mx:Script><![CDATA[
...
public function startApp():void {
  objectMap.myRoot = this; // Это чтобы objectMap мог обращаться к данным основного класса.
  ...
}
  ]]></mx:Script>
...
  <mx:Canvas width="100%" height="100%">
    <mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
      <mx:Canvas width="99%" height="99%" backgroundColor="#869ca7" styleName="loginSection">
        <mx:VBox width="100%" height="100%">
          <MenuTextBar id="menuTextBar" width="100%" height="20" tabIndex="30"/>
          <mx:HDividedBox width="100%" height="100%">
            <mx:VDividedBox width="100%" height="100%">

<!-- ВОТ ОБЪЕКТ, ГРУЗЯЩИЙ КАРТИНКУ -->
              <ObjectMap id="objectMap" width="100%" height="75%" tabIndex="100"/>

              <MsgWindow id="msgWindow" width="100%" height="25%" tabIndex="200"/>
            </mx:VDividedBox>
            <DevicesTree id="devicesTree" width="200" height="100%" tabIndex="30"/>
          </mx:HDividedBox>
        </mx:VBox>
      </mx:Canvas>
    </mx:HBox>
  </mx:Canvas>
</mx:Application>

Класс ObjectMap, созданный на базе mx:Canvas, загружает картинку и выводит ее на экран. Мне нужно отмасштабировать загруженную картинку так, чтобы она занимала 100% ширины и высоты той области, в которой она находится.

ObjectMap.mxml:
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" width="100%" height="100%" backgroundColor="#c9c9c7" styleName="loginSection">
  <mx:Script><![CDATA[
...
public var myRoot; // Это "ссылка" на основной класс main.mxml

private function imageCompleteHandler(event:Event):void {
// Этод метод вызывается по успешном окончании загрузки картинки.
// Картинка прекрасно аттачится и выводится на экран.
// Ширина и высота canvas установлены в 100%, но мне не удается получить размеры Canvas:

Alert.show("myRoot.objectMap.width="+myRoot.objectMap.width+", this.width="+this.width);
// выдает "myRoot.objectMap.width=0, this.width=0".
}
  ]]></mx:Script>
</mx:Canvas>

Как определить размер "окна", в котором лежит objectMap, чтобы максимально отмасштабировать загруженную картинку?

Nurkanat 09.07.2007 15:02

Как я понял, ObjectMap лежит внутри
<mx:VDividedBox width="100%" height="100%">

Если это так, то Вам надо узнать размер этого объекта(контейнера для ObjectMap).


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

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