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" в frame(5), няма грешка.

какво трябва да направя, ако искам да отида на кадър 5, когато филмовият клип dragmc и филмовият клип draglagi се виждат е невярно, без да добавя 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
ммм как мога да направя това?? addchild(dragmc)?? @Дейвид - 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
„Параметърът дете трябва да е различен от нула. в flash.display::DisplayObjectContainer/addChild() в _2_fla::MainTimeline/masukframe()[_2_fla.MainTimeline::frame1:73]' myscript като този 'if(addChild(dragbener[1]).visible == false && addChild(dragbener[2])){ trace(dragmc); gotoAndStop(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