gpt4 book ai didi

actionscript-3 - AS3 禁用 Datagrid 内 textInput 的可编辑/可选择

转载 作者:行者123 更新时间:2023-12-04 13:12:01 25 4
gpt4 key购买 nike

我目前正在尝试禁用可选/可编辑/或将 textInput 更改为动态以获得我想要的结果。

我有一个带有下拉菜单和文本输入区域的自定义数据网格。但是,如果我的 Model # 列中没有数据,我不想在相应的 PurchasePrice 单元格中允许任何条目。

col1 = new DataGridColumn("Model");
col1.headerText = "Model #";
c2.consumables_dg.addColumn(col1);
col1.width = 60;
col1.editable = false;
col1.sortable = false;
col1.cellRenderer = AlternatingRowColors_editNum_PurchasePrice;
col1 = new DataGridColumn("PurchasePrice");
col1.headerText = "Purchase Price";
c2.consumables_dg.addColumn(col1);
col1.width = 60;
col1.editable = false;
col1.sortable = false;
col1.cellRenderer = AlternatingRowColors_editNum_PurchasePrice;

我已经尝试了 AlternatingRowColors_editNum_PurchasePrice 中的各种项目,但目前似乎没有任何效果。请看看我在 if(__enbaled) 的 else 语句中尝试了什么
package{
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import fl.controls.TextInput;
import flash.text.TextFieldType;
import flash.events.Event;
import fl.controls.listClasses.ListData;
import fl.controls.listClasses.ICellRenderer;

public class AlternatingRowColors_editNum_PurchasePrice extends TextInput implements ICellRenderer
{
protected var _data:Object;
protected var _listData:ListData;
protected var _selected:Boolean;
private var __enabled:Boolean = false;
public static var _stage;
public static var _alignment;
private var tf:TextFormat;

public function AlternatingRowColors_editNum_PurchasePrice()
{
tf = new TextFormat();
if(__enabled){
if(_alignment == 2){
tf.align = TextFormatAlign.RIGHT;
}else if(_alignment == 1){
tf.align = TextFormatAlign.CENTER;
}else{
tf.align = TextFormatAlign.LEFT;
}
restrict = "0-9.";
addEventListener(Event.CHANGE, textChange);

}else{
//this.selectable = false; // did not work
//textField.selectable = false; // did not work
//textField.type = dynamic; // did not work
//textField.type = TextFieldType.DYNAMIC; // did not work
//this.mouseEnabled = false; // did not work
//this.tabEnabled = false; // did not work
//textField.mouseEnabled = false; // did not work
//textField.tabEnabled = false; // did not work
//selectable = false; // did not work
//this.selectable = false; // did not work
//_enabled = false; // did not work
//-----------------------------------------------------------
// *** Corresponding Entry to enable was placed above ***
//-----------------------------------------------------------
}
super();
}

public function textChange(Event):void{
//trace(_data.Discount);
_data.PurchasePrice = text;
}

public function get data():Object
{
return _data;
}

public function set data(value:Object):void
{
_data = value;
text = value.PurchasePrice;

if(value.Model != "") __enabled = true;

if (value.id % 2 == 0) {
setStyle("upSkin", AlternateColor1 );
} else {
setStyle("upSkin", AlternateColor2 );
}
}

public function get listData():ListData
{
return _listData;
}

public function set listData(value:ListData):void
{
_listData = value;
}

public function get selected():Boolean
{
return _selected;
}

public function set selected(value:Boolean):void
{
_selected = value;
}

public function setMouseState(state:String):void
{
}
override protected function drawLayout():void
{
textField.setTextFormat(tf);
super.drawLayout();
}

}
}

我只是以错误的方式接近这个吗?与其尝试停止鼠标、制表符或将文本字段转换为动态,我应该尝试其他方法以获得所需的结果吗?

谢谢,
jc

最佳答案

最简单的方法是更改​​ TextField输入自身,然后将其更改为 selectable属性(property):

//disable input
tf.selectable = false;
tf.type = TextFieldType.DYNAMIC;

//enable input
tf.selectable = true;
tf.type = TextFieldType.INPUT;

也不要忘记设置 mouseEnabled & tabEnabled根据您的字段的需要/需要的属性。

关于actionscript-3 - AS3 禁用 Datagrid 内 textInput 的可编辑/可选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com