Создание кнопки удаления для удаления текста в поле ввода текста - PullRequest
0 голосов
/ 12 ноября 2010

Я получил эти четыре ошибки, когда попытался создать на сцене кнопку, которая удаляла бы текст, введенный мной в текст ввода (ti).Исходя из имеющихся у меня скриптов и ошибок, что я должен написать для создания кнопки удаления?

Попытка удалить текст фиксированного свойства.Только динамически определенные свойства могут быть удалены.Доступ к неопределенному свойству delete_btn.Доступ к возможно неопределенному свойству buttonDown через ссылку со статическим типом Class.Предупреждение: 3600: Текст объявленного свойства не может быть удален.Чтобы освободить связанную память, установите для нее значение 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
}

Ответы [ 2 ]

3 голосов
/ 12 ноября 2010

У вас есть несколько ошибок!

Попытка удалить текст фиксированного свойства.Только динамически определенные свойства могут быть удалены. и Предупреждение: 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

  • ЗдесьВы не создали кнопку «delete_btn» (или у нее есть другое имя экземпляра)

Доступ к неопределенному свойству buttonDown, возможно, через ссылку со статическим типом Class

  • MouseEvent.buttonDown не существует, может быть, вы хотите использовать MouseEvent.CLICK или MouseEvent.MOUSE_DOWN вместо
0 голосов
/ 12 ноября 2010
delete_btn.addEventListener(MouseEvent.CLICK, deletetxt);
function deletetxt(event:Event):void {
 ti.text = "";
 }

Unkiwii был прав насчет ti.text = "", но принуждение не смогло конвертировать события, поэтому я просто сделал это событием:

...