Массив AS3 виден неверно

я хочу спросить об этом скрипте

var dragbener:Array = new Array (dragmc, draglagi);    
this.addEventListener (Event.ENTER_FRAME, masukframe)

    function masukframe(e:Event):void {

     if(dragmc.visible == false && draglagi.visible == false){
        //next2.visible=true;
        gotoAndStop(5);
          }
        }

но если я воспроизведу этот сценарий, вывод будет

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at _2_fla::MainTimeline/masukframe()[_2_fla.MainTimeline::frame1:80]

и если я добавлю мувиклип "dragmc" и "draglagi" в кадр (5), ошибки не будет.

что мне делать, если я хочу перейти к 5-му кадру, когда мувиклип dragmc и мувиклип draglagi visible имеют значение false без добавления movclip dragmc и draglagi в 5-м кадре??


person Intan Mega    schedule 31.01.2013    source источник
comment
Если вы хотите получить доступ к dragmc и draglagi в каждом кадре (по мере того, как вы его кодируете), вам нужно сделать их доступными в каждом кадре.   -  person Kabir    schedule 01.02.2013


Ответы (2)


Не совсем уверен, что это исправит ситуацию, но я совершенно уверен, что вам нужно ссылаться на массив для доступа к элементам (например, dragbener[1] вместо dragmc).

РЕДАКТИРОВАТЬ: Ах, оснастки. Забыли, что вам нужно добавить объекты на сцену, используя addChild();

person David    schedule 31.01.2013
comment
ммм как мне это сделать?? добавить ребенка (перетащить) ?? @Дэйвид - person Intan Mega; 31.01.2013
comment
@IntanMega Обычно вы просто делаете addChild(dragbener[1]) в своем основном методе или, в данном случае, в masukframe(). - person David; 01.02.2013
comment
@IntanMega Ха-ха, дерьмо, извини. Вы должны добавить его туда, где вы определили свои переменные. Забыл, что ты делаешь это на временной шкале. - person David; 01.02.2013
comment
Я пытаюсь добавить «addChild (dragbener [1])» на свою временную шкалу ... но когда я удаляю dragmc в следующем кадре, ошибка появляется снова. Что я должен делать? - person Intan Mega; 04.02.2013
comment
@IntanMega Сделайте trace(dragmc), прежде чем удалять его, и скажите мне, что происходит. - person David; 04.02.2013
comment
'Дочерний параметр не должен быть нулевым. at flash.display::DisplayObjectContainer/addChild() at _2_fla::MainTimeline/masukframe()[_2_fla.MainTimeline::frame1:73]' myscript вроде этого 'if(addChild(dragbener[1]).visible == false && addChild(dragbener[2])){ trace(dragmc); перейтиИОстановить(5);' - person Intan Mega; 04.02.2013
comment
@IntanMega Вы не должны ссылаться на addChild(dragbener[1]). Это функция, которая добавляет объект на сцену. - person David; 04.02.2013
comment
Итак, как мне написать это на сцене? Я новичок во флэш-памяти AS3, поэтому я не знаю, как это сделать. - person Intan Mega; 04.02.2013
comment
@IntanMega Просто из любопытства, зачем вы вообще создали массив? - person David; 04.02.2013
comment
bcoz в следующем кадре количество мувиклипов для перетаскивания будет увеличиваться... поэтому я думаю, что будет проще и проще, если я сделаю массив - person Intan Mega; 04.02.2013
comment
@IntanMega Я думаю, будет лучше, если ты научишься использовать addEventListener(). Кроме того, научитесь программировать вне временной шкалы. - person David; 04.02.2013

вам нужно иметь эти мувиклипы на сцене, если вы хотите ссылаться на них, другие варианты вызывают их с помощью addChild();, но если вы хотите сделать это просто, поместите мувиклипы на кадр 5 и объявите их невидимыми, как так

dragmc.visible = false;
draglagi.visible = false;
person Guram    schedule 31.01.2013
comment
на самом деле я также использую такой простой метод ... но я хочу по-другому, как применить addchild ()? @Гурам - person Intan Mega; 31.01.2013
comment
это руководство может быть полезным, так как я научился добавлять видеоклипы на сцену отсюда republicofcode.com/tutorials/flash /as3displaylist - person Guram; 05.02.2013