当我尝试在舞台上创建一个删除输入文本(ti
)中输入的文本的按钮时,我遇到了这四个错误。根据我的脚本和错误,我应该写什么来创建删除按钮?
尝试删除固定属性 文本。仅动态定义 属性可以删除。 访问 undefined属性delete_btn。 访问 可能未定义的属性 buttonDown通过引用 静态类型。 警告:3600:Thdeclared属性文本不能 删除。要释放相关的记忆, 将其值设置为null。
delete_btn.addEventListener(MouseEvent.buttonDown, deletetxt);
function deletetxt(event:TextEvent):void {
delete ti.text
}
ti.border = true
ti.addEventListener(TextEvent.TEXT_INPUT, onInput);
function onInput(event:TextEvent):void {
if(ti.text.search('a')!=-1) load_image("http://i54.tinypic.com/anom5d.png", "ottefct");
else if(ti.text.search('b')!=-1) load_image("http://i53.tinypic.com/2dv7dao.png", "rnd");
else if(ti.text.search('c')!=-1) load_image("http://i51.tinypic.com/m8jp7m.png", "ssd");
}
var loaded_images:Dictionary = new Dictionary();
function load_image(url:String, id_name:String)
{
var loader:Loader = new Loader();
loader.name = id_name;
var url_req:URLRequest = new URLRequest(url);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadingComplete);
loader.load(url_req);
}
function onLoadingComplete(evt:Event):void
{
var img_name:String = evt.currentTarget.loader.name
var spr_box:Sprite = new Sprite();
spr_box.addChild(evt.currentTarget.loader);
spr_box.mouseChildren = false;
spr_box.doubleClickEnabled = true;
spr_box.addEventListener(MouseEvent.MOUSE_DOWN, drag);
spr_box.addEventListener(MouseEvent.MOUSE_UP, drop);
spr_box.addEventListener(MouseEvent.MOUSE_WHEEL, rotate);
spr_box.addEventListener(MouseEvent.DOUBLE_CLICK , unrotate);
spr_box.width = 124;
spr_box.height = 180;
this.addChild(spr_box);
loaded_images[img_name] = spr_box;
}
function drag(evt:MouseEvent):void
{
evt.currentTarget.startDrag()
}
function drop(evt:MouseEvent):void
{
evt.currentTarget.stopDrag()
}
function rotate(evt:MouseEvent):void
{
evt.currentTarget.rotation = 90
}
function unrotate(evt:MouseEvent):void
{
evt.currentTarget.rotation = 0
}
答案 0 :(得分:3)
你有几个错误!
尝试删除固定属性文本。只能删除动态定义的属性。 和 警告:3600:无法删除声明的属性文本。要释放相关内存,请将其值设置为null。
要删除文字时出错:
function deletetxt(event:TextEvent):void {
delete ti.text; // <-- Error HERE!
}
你应该这样做:
function deletetxt(event:MouseEvent):void { // <-- Sorry, didn't see the "TextEvent"
ti.text = "";
}
delete
关键字用于其他内容(例如删除字典条目)
访问未定义的属性delete_btn
通过静态类型Class
的引用访问可能未定义的属性buttonDownMouseEvent.buttonDown
不存在,您可能希望使用MouseEvent.CLICK
或MouseEvent.MOUSE_DOWN
答案 1 :(得分:0)
delete_btn.addEventListener(MouseEvent.CLICK, deletetxt);
function deletetxt(event:Event):void {
ti.text = "";
}
Unkiwii对于to.text =“”是正确的,但强制无法转换事件所以我只是把它变成了一个事件:事件