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

Lexa_ 02.07.2009 20:05

Передать значения в компонент?
 
Есть таблица в приложении, есть компонент - PopUp окно с текстовым полем inputNumber. При выборе элемента таблицы нужно менять текст в этом поле.
Application:
Код:

<mx:Script>
                <![CDATA[
                import components.SDS;

                private function showSDS():void {
                                var sdsWindow:TitleWindow = TitleWindow(PopUpManager.createPopUp(this, SDS, false));
                }
                ]]>
        </mx:Script>
<mx:Grid id="_grid" dataProvider="{_data}"/>

Component
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="252"
        layout="absolute" title="SDS"
        showCloseButton="true" close="closeWindow()">
        <mx:Script>
                <![CDATA[
                import mx.managers.PopUpManager;
               
                        private function closeWindow():void {
                                PopUpManager.removePopUp(this);
                        }

                ]]>
        </mx:Script>
       
        <mx:TextInput top="10" left="10" id="inputNumber" text=""/>
</mx:TitleWindow>

Я уже и get-set пробовал, и в сторону Inspactable копал. Из xml в статический компонент работает, а вот как с PopUp быть и из AS как это сделать - не могу понять.

BeDLiNt 03.07.2009 08:34

Ну сделайте public переменную в компоненте. А когда создаете экземпляр класса вашего компонента, записывайте в эту переменную данные.

Lexa_ 03.07.2009 18:19

Да вот собственно вопрос как правильно создать экземпляр класса.
Когда я делаю самый дубовый вариант
Код AS3:

var _appSDS:* = new SDS();
var sdsWindow:TitleWindow = TitleWindow(PopUpManager.createPopUp(this, _appSDS, false));

Получаю Error #1034: Type Coercion failed: cannot convert components::SDS@3b9dae1 to Class.

BeDLiNt 04.07.2009 08:18

Сами хоть поняли что написали?)
Код AS3:

var editWindow:EditWindow = EditWindow(PopUpManager.createPopUp(this, EditForm, true));
editWindow.inputNumber = 123;


Lexa_ 06.07.2009 19:27

С такого варианта я начал :) Был послан компиллятором :)
Заработало вот так:
Код AS3:

import components.SDS;
var sdsWindow:SDS = PopUpManager.createPopUp(this, SDS, false) as SDS;
sdsWindow.inputNumber = 1234;

Получилось масло маслянное, но работает.

Bruiser 07.07.2009 10:57

Вот так можно
Код:

var modal:ModalWin = new ModalWin;
PopUpManager.addPopUp(modal,this,true);
PopUpManager.centerPopUp(modal);
modal.inputNumber=1234;



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

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