Форум 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=143139)

igogor 08.08.2010 17:52

Окно произвольной формы в Аir
 
Набрал пример из книги в FlashBuilder 4 и не хочет работать. Подскажите в чем проблема, может изменили чтото разработчики?
Код AS3:

<s:Window 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="700" height="600"
                  currentState="State1"
                  xmlns:comp="components.*" systemChrome="none" transparent="true"
                  creationComplete="createMainWin(event)">
        <fx:Script>
                <![CDATA[
                import mx.core.Container;
                import mx.events.FlexEvent;
                private function createMainWin(e:FlexEvent):void {
                        var mySh:Shape = new Shape();
                        mySh.graphics.lineStyle(1, 0, .5);
                        mySh.graphics.beginFill(0x0000FF, .5);
                        mySh.graphics.drawEllipse(0,0,200,170);
                        mySh.graphics.endFill();
                            rawChildren.addChild(mySh);
                    }
        </fx:Script>
</s:Window>

Ошибка с rawChildren "Обращение несуществующего свойства rawChildren "

Astraport 08.08.2010 18:02

Ну а где rawChildren?
Поменяйте на this.addChild(mySh);

igogor 08.08.2010 19:20

тогда ошибка
Error: addChild() является недопустимым в этом классе. Используйте вместо него addElement() или измените тему оформления при наличии таковой.


А если использую addElement() тогда ошибка:
Неявное приведение значения типа flash.display.sprite к несоответствующему типу mx.core.IVisualElement.

Подскажите как это побороть!

Astraport 08.08.2010 19:36

Создайте контейнер. Например так:
Код AS3:

<s:BorderContainer x="173" y="169" width="407" height="331" id="rawChildren">
        </s:BorderContainer>

И попробуйте использовать: rawChildren.addChild(mySh);

Добавлено через 2 минуты
у вас там ещё в коде ошибка.
Код AS3:

]]></fx:Script>


igogor 08.08.2010 19:46

опять ошибка
Error: addChild() является недопустимым в этом классе. Используйте вместо него addElement() или измените тему оформления при наличии таковой.

Люди Подскажите как в FlashBuilder создать окно неправильной формы

alatar 09.08.2010 15:30

Просто измените скин для Window. Скинирование spark компонентов в корне отличается от скинирования mx компонентов.
По-поводу ошибки: Window является наследником SkinnableContainer (если речь идет о spark) у которого методы addChild и т.д. использовать нельзя (генерируется ошибка), если очень хочется что-то добавить, используйте методы addElement() и т.д. о чем, собственно, в тексте ошибки и сообщается.
Пример из книги, скорее всего, расчитан на SDK 3.x. если хотите использовать именно его (пример), используйте соответствующий SDK.


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

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