25/10/2008, 17:31
|
| | | Fecha de Ingreso: julio-2005 Ubicación: Edo. de México
Mensajes: 121
Antigüedad: 19 años, 4 meses Puntos: 2 | |
Respuesta: Comunicar entre clases DataGrid cellRenderer Se me ocurren 2 escenarios uno: que se importe una clase denro de la otra como en java o dos: obtener el nombre de la instancia con getItemAt: culaquier informacion al respecto sera bien recibida ya qu ees el unico dilema que me falta por resolver para terminar mi proyecto gracias
btw estas son las clases si le quieren echar un lente
NumericStepperRenderer.as
Código:
import mx.core.UIComponent
import mx.controls.NumericStepper
class com.flashdb.NumericStepperRenderer extends UIComponent
{
var step : MovieClip;
var listOwner : MovieClip; // the reference we receive to the list
var getCellIndex : Function; // the function we receive from the list
// var getDataLabel : Function; // the function we receive from the list
function NumericStepperRenderer()
{
}
function createChildren(Void) : Void
{
//Creates a ComboBox object and listen to changes
attachMovie("NumericStepper", "step", 1, {styleName:this, owner:this});
step.addEventListener("change", this);
size();
}
// note that setSize is implemented by UIComponent and calls size(), after setting
// __width and __height
function size(Void) : Void
{
// step.setSize(30, 22);
//step._x = (__width-150)/2;
//step._y = __height;
var h = __height;
var w = __width;
// step.setSize(w - 2, Math.max(h, listOwner.rowHeight - 2));
step.setSize(w - 2, 22);
}
function setValue(str:String, item:Object, sel:Boolean) : Void
{ //Get values from the dataProvider
//item.Model is an array of labels/data pairs
step.visible = (item!=undefined);
//combo.dataProvider = item.Model;
}
/*
function getPreferredHeight(Void) : Number
{
return 20;
}
function getPreferredWidth(Void) : Number
{
return 16;
}
*/
function calculaFcn(cnt:Number,costo:Number)
{
//var val = 429.00;
var resultado:Number = cnt*costo;
//var numero:Number = Math.round (resultado * 100) / 100;
//this[inst].text = "$"+resultado;
trace("$"+resultado);
//inpt.text = resultado;
_global.res = resultado;//¿¿¿¿¿¿¿¿¿¿¿¿COMO ASIGNO EL RESAULTADO AL TEXTINPUT?????????????????????????????
}
function change()
{
//trace("Changed");
// var index = getCellIndex();
//var colName = listOwner.selectedItem.getCellIndex();
//.getColumnAt(index.columnIndex).columnName;
//trace(colName);
var index = getCellIndex();
var colName = listOwner.getColumnAt(index.columnIndex).columnName;
trace("Nombre de la columna: "+colName);
//listOwner.dataProvider.editField(index.itemIndex, colName, someVal);
trace("no de columna: "+ index.columnIndex);
trace("no de celda: "+ index.itemIndex);
trace("cantidad: "+step.value);
trace("Nombre de la columna 4: " + listOwner.getColumnAt(4).columnName);
trace("Precio contenido en la columna "+ index.columnIndex + " Celda " + index.itemIndex + ": " + listOwner.getItemAt(index.itemIndex).Precio);
calculaFcn(step.value, listOwner.getItemAt(index.itemIndex).Precio);
}
}
TextInputRenderer.as
Código:
import mx.core.UIComponent
import mx.controls.NumericStepper
class com.flashdb.TextInputRenderer extends UIComponent
{
var inpt : MovieClip;
var listOwner : MovieClip; // the reference we receive to the list
var getCellIndex : Function; // the function we receive from the list
function TextInputRenderer()
{
}
function createChildren(Void) : Void
{
//Creates a ComboBox object and listen to changes
inpt =createObject("TextInput", "inpt", 1, {styleName:this, owner:this});
inpt.addEventListener("change", this);
size();
}
function size(Void) : Void
{
// step.setSize(30, 22);
//step._x = (__width-150)/2;
//step._y = __height;
var h = __height;
var w = __width;
// step.setSize(w - 2, Math.max(h, listOwner.rowHeight - 2));
inpt.setSize(w - 2, 22);
}
function setValue(str:String, item:Object, sel:Boolean) : Void
{ //Get values from the dataProvider
//item.Model is an array of labels/data pairs
inpt.visible = (item!=undefined);
inpt.editable = false;
//combo.dataProvider = item.Model;
//inpt.text = str;
}
function change()
{
inpt.text = _global.res; //SE ME OCURRIA QUE AÑADIENDO UN LISTENER AL INPUT SIN EMBARGO NO SIRVE PORQUE NO ES EL INPUT EL QUE CAMBIA SINO EL NUMERIC
}
}
|