PDA

Просмотр полной версии : Передать значения в компонент?


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
Да вот собственно вопрос как правильно создать экземпляр класса.
Когда я делаю самый дубовый вариант

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
Сами хоть поняли что написали?)

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

Lexa_
06.07.2009, 19:27
С такого варианта я начал :) Был послан компиллятором :)
Заработало вот так:

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;