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

HardCoder 26.11.2011 14:00

Как инициировать конструктор класса
 
Здравствуйте! Начал изучать Flex. На первый взгляд с кнопочками, их свойствами и пр как будто разобрался. Вот, например это мне понятно:
Код AS3:

<mx:Button click="hello(event)"/>
<mx:Script>
        <![CDATA[
        import flash.events.MouseEvent;
        private function hello(e:MouseEvent):void{
                trace("hello");
        }
        ]]>
</mx:Script>

Но что делать, если я не хочу, ждать, пока гражданин нажмет на кнопку, а сразу выполнить какое-то действие, например:
Код AS3:

                var spr:Sprite = new Sprite();
                this.addChild(spr);

? Конструкция, привычная для AS не подходит:
Код AS3:

public function Main(){
        var spr:Sprite = new Sprite();
        this.addChild(spr);
}

Перепробовал разные способы - ни один не подходит.
И еще - Почему не могу в функции hello() из кода выше написать
Код AS3:

                var spr:Sprite = new Sprite();
                this.addChild(spr);

Выводит ошибку
Цитата:

невозможно преобразовать flash.display::Sprite@9dac4a9 в mx.core.IUIComponent.

Astraport 26.11.2011 14:20

1.
Код AS3:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                          xmlns:s="library://ns.adobe.com/flex/spark"
                          xmlns:mx="library://ns.adobe.com/flex/mx"
                          xmlns:local="*"
                          width="760" height="850" minWidth="760" minHeight="850"
                            creationComplete="init(event)" >//здесь вызываемая функция

2. Вместо this.addChild(spr); нужно this.addElement(spr).

Также для вставки спрайта можно использовать MXML через <s:SpriteVisualElement/>

HardCoder 26.11.2011 14:50

Спасибо, теперь все понятно. Оказывается главный класс унаследован от Application

dsdbonus 29.11.2011 15:26

Ну это не совсем правильно.
Если объект к которому добавляется в отображении другой объект является контейнером или любым унаследованным классом от него, то отображаемый объект должен быть минимум UIComponent либо унаследованные от него. А вот к UIComponentу в отображение можно пихать дисплей обжекты. Если надо вставить тот же спрайт в апликейшен, то оборачиваем его в уикомпонент и делов...


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

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