2012-10-26 6 views
0

Хорошо, так что у меня есть кнопка при нажатии, идет в кадр 15. Если xpsafety равно 0, я хочу, чтобы ребенок был создан, а xpsafety - 1. Поэтому, если кнопка снова нажата он не будет показывать ребенка и сделать расчетas3 Ребенок не будет удален

Fame 10:

var xpsafety:int = 0; 
var xpclip:MovieClip = new xp(); 

RememberButton.addEventListener(MouseEvent.CLICK, GoToRemember); 


function GoToRemember(evt:MouseEvent):void { 
gotoAndPlay(15, "Scene 1"); 
if (xpsafety == 0) { 
    addChild(xpclip); 
    xpclip.x=41; 
    xpclip.y=835; 
    calculateExp(8); 
    xpsafety = xpsafety +1; 
} 


} 

Кадр 15:

stop(); 


    BackButton.addEventListener(MouseEvent.CLICK, GoBackSafety); 

    function GoBackSafety(evt:MouseEvent):void { 
     gotoAndPlay(10, "Scene 1"); 
     removeChild(xpclip); 
     } 

ошибка я получаю это: ArgumentError: Error # 2025: Прилагаемый DisplayObject должен быть ребенком t он звонит.

Я не понимаю, что это значит, какие-либо советы? Пожалуйста и спасибо.

Другой вопрос, но это, вероятно, связано, несмотря на xpsafety быть не равно 0, то функция по-прежнему уходит (я знаю, потому что calculateExp (8) происходит

ответ

-2

Все, что мне нужно сделать было поставить свою переменную внутри, если заявление на кадре 15 ..... как показано ниже:

stop(); 

BackButton.addEventListener(MouseEvent.CLICK, GoBackSafety); 

function GoBackSafety(evt:MouseEvent):void { 
    gotoAndPlay(10, "Scene 1"); 

    } 

var xpclip:MovieClip = new xp(); 
if (xpsafety==0) { 
    var xpsafety:int = 0; 
    addChild(xpclip); 
    xpclip.x=41; 
    xpclip.y=835; 
    calculateExp(8); 
    xpsafety = xpsafety +1; 
    trace(xpsafety); 
    } 
0

попытаться сделать что-то вроде:.

xpclip.parent.removeChild(xpclip); 
+0

Я получаю эту ошибку: TypeError: Ошибка # 1009: Не удается получить доступ к свойству или методу ссылки на нулевой объект. При игре. – Butterflycode

+0

Это означает, что ваш объект xpclip имеет значение null ... Вы можете проверить это, прежде чем удалять, возможно. – blue112

-1

Вы пытаетесь получить доступ к xpclip переменной внутри слушателя, попробуйте это.

var mc:MovieClip = (root as MovieClip).xpchild; 
(root as MovieClip).removeChild(mc); 

Если это все еще не работает, проверьте mc не является нулевым.

+0

У меня есть еще один Flash-проект, в котором я использовал одну и ту же переменную внутри слушателя, и это сработало ... Я не совсем понимаю, что мне нужно делать с двумя строками кода, которые вы выставляете. – Butterflycode

2

Это было некоторое время, так как я сделал любой кадр сценариев, как вскоре становится громоздким и трудно управляемым. См. here.

На вопрос xpsaftey, когда вы возвращаетесь к кадру 10, весь сценарий запускается снова, а переменная xpsaftey переопределяется со значением по умолчанию 0. Вам нужно будет разместить объявление var xpsafety:int на более раннем фрейме, чтобы предотвратить это.

Ваш второй пример с xpsaftey внутри цикла for просто сбивает с толку, так как вы снова переопределяете его в рамках оператора if. Я предлагаю прочитать общее о переменной scope.

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