2015-10-01 3 views
-1

Попытка создания кнопок на ActionScript: создание и удаление объекта movieclip, но всегда некоторые ошибки ... Мне нужно, чтобы одна кнопка создавала movieclip, другая должна удалить ее с помощью мыши. Вот код:actionscript 3 добавить и удалить кнопку movieclip

import flash.events.MouseEvent; 
import flash.display.MovieClip; 
import flash.text.TextField; 

main.addEventListener(MouseEvent.CLICK, addMain); 
function addMain(e: MouseEvent) { 
    var movieClip: bm = new bm(); 
    movieClip.x = 640; 
    movieClip.y = 570; 
    this.addChild(movieClip); 
    main.removeEventListener(MouseEvent.CLICK, addMain); 
    deletemain.removeEventListener(MouseEvent.CLICK, addMain); 
} 

deletemain.addEventListener(MouseEvent.CLICK, deleteMain); 
function deleteMain(e: MouseEvent) { 
    var movieClip: bm = bm(event.target); 
    this.removeChild(movieClip); 
    removeChild(movieClip); 
    movieClip = null; 
    deletemain.removeEventListener(MouseEvent.CLICK, deleteMain); 
} 
+0

Если у вас есть ошибки, вы должны, очевидно, опубликовать их. В конце концов, они предоставляют полезную информацию о том, как избавиться от них, поэтому вы их получите. – null

+0

Хорошо, я не знал этого, первый раз здесь. –

+0

Но не в первый раз что-то объясняю. Всегда предоставляйте всю имеющуюся у вас соответствующую информацию. Если вы их не понимаете, это нормально и может быть частью вопроса. Я не ответил на ваш вопрос, но, скорее всего, кто-то поступил по этой причине. Если вы включите всю соответствующую информацию, ваши вопросы будут получены сообществом лучше и, скорее всего, ответят. Кстати, добро пожаловать в SO! – null

ответ

0

OK, чтобы понять, почему ваш код не работает, давайте посмотрим на него:

main.addEventListener(MouseEvent.CLICK, addMain); 
function addMain(e: MouseEvent) 
{ 
    // here you are creating a local var "movieClip" 
    // inside your "addMain" function, so it's only accessible here 
    var movieClip:bm = new bm(); 
     movieClip.x = 640; 
     movieClip.y = 570; 

    this.addChild(movieClip); 

    main.removeEventListener(MouseEvent.CLICK, addMain); 

    // I don't really know why you do this ! 
    deletemain.removeEventListener(MouseEvent.CLICK, addMain); 
} 

deletemain.addEventListener(MouseEvent.CLICK, deleteMain); 
function deleteMain(e: MouseEvent) 
{ 
    // here, you are creating a local var "movieClip" 
    // by casting (converting) your "deletemain" button (e.target) to an "bm" object 

    // event.target should be e.target 
    var movieClip: bm = bm(event.target); 

    // here your are removing the "deletemain" button, once 
    this.removeChild(movieClip); 
    // and twice 
    removeChild(movieClip); 

    movieClip = null; 

    deletemain.removeEventListener(MouseEvent.CLICK, deleteMain); 
} 

Так делать то, что вы хотите: создание MovieClip и удаление его с помощью две кнопки, вы должны объявить «MovieClip» в качестве глобальной переменной, чтобы быть доступным для двух функций слушателя:

// declare a global "bm" object 
var movieClip:bm; 

btn_add.addEventListener(MouseEvent.CLICK, btn_add_onPress); 
function btn_add_onPress(e: MouseEvent): void 
{ 
    // create the "movieClip" object 
    movieClip = new bm(); 
    addChild(movieClip); 

    // remove the click event listener for the btn_add 
    btn_add.removeEventListener(MouseEvent.CLICK, btn_add_onPress); 
} 

btn_delete.addEventListener(MouseEvent.CLICK, btn_delete_onPress); 
function btn_delete_onPress(e:MouseEvent) : void 
{ 
    // remove the "movieClip" object 
    removeChild(movieClip); 
    movieClip = null; 

    // remove the click event listener for the btn_delete 
    btn_delete.removeEventListener(MouseEvent.CLICK, btn_delete_onPress); 
} 

Надежда, которая может помочь.

+0

Отлично @akmozo !!! Большое спасибо за Вашу помощь! Его трудно мне понять actioncript ... –

+0

@AlexBulava Добро пожаловать. Посмотрите [здесь] (http://www.adobe.com/devnet/actionscript/learning.html) для получения дополнительной информации об обучении ActionScript 3. – akmozo

Смежные вопросы