[AS3 / FLASH] Runtime Errors (opnieuw)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 336101

Topicstarter
Heb al eerder een post geplaatst ivm mijn applicatie van het brein.
Ik blijf met die runtime errors zitten.

Ik werk in verschillende frames om de "vijanden" van het brein over de stage te laten gaan.
in het eerste frame is dit mijn code :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function init3():void
{
    brainOnStage();
    alcohol1OnStage();
    brainAttackButton.visible = false;
}

function brainOnStage():void
{
    brainHero = new BrainHero;
    brainHero.x = stage.stageWidth - brainHero.width;
    brainHero.y = 0;
    addChild(brainHero);
    
    brainHero.addEventListener(MouseEvent.CLICK, bliksemClickHandler);
    brainHero.buttonMode = true;
}

function alcohol1OnStage():void
{
    alcohol1 = new Alcohol1;
    alcohol1.x = stage.stageWidth - alcohol1.width - 10;
    alcohol1.y = stage.stageHeight - alcohol1.height - 70;
    addChild(alcohol1);
}

function bliksemClickHandler(evt:MouseEvent):void
{
    bliksem = new Bliksem;
    bliksem.x = mouseX;
    bliksem.y = mouseY;
    addChild(bliksem);
    
    var yBeginPos:uint = mouseY - 60;
    var yEindPos:uint = stage.stageHeight + 50;
    
    var yTweenBliksem:Tween = new Tween(bliksem, "y", Regular.easeOut, yBeginPos, yEindPos, 1, true);
    
    bliksem.addEventListener(Event.ENTER_FRAME, hitTestObjectAlc1Handler);
}

function hitTestObjectAlc1Handler(evt:Event):void
{
    if(bliksem.hitTestObject(alcohol1))
    {
        trace("freeze alc1");
        gotoAndStop(202);
    }
}

init3();


de volgende frames hebben deze code (allemaal met enige aanpassing natuurlijk):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function init4():void
{
    removeChildsVorigFrame201();
    bliksem.removeEventListener(Event.ENTER_FRAME, hitTestObjectAlc1Handler);
    alcohol2OnStage();
    bliksem.addEventListener(Event.ENTER_FRAME, hitTestObjectAlc2Handler);

}

function alcohol2OnStage():void
{
    alcohol2 = new Alcohol2;
    alcohol2.x = stage.stageWidth - alcohol2.width;
    alcohol2.y = stage.stageHeight - alcohol2.height;
    addChild(alcohol2);
}

function hitTestObjectAlc2Handler(evt:Event):void
{
    if(bliksem.hitTestObject(alcohol2))
    {
        trace("freeze alc2");
        alcohol2.visible = false;
        gotoAndStop(203);
    }
}

function removeChildsVorigFrame201():void
{
    removeChild(alcohol1);
}

init4();


de error gaat steeds over het verwijderen van de "vijanden", maar hij blijft deze steeds herhalen, wsl door de enter frame, maar die verwijder ik in de volgende frame.

ArgumentError: Error #2025: Het opgegeven DisplayObject moet een onderliggend item van de aanroeper zijn.
at flash.display::DisplayObjectContainer/removeChild()
at brainGame3_fla::MainTimeline/removeChildsVorigFrame201()
at brainGame3_fla::MainTimeline/init4()
at brainGame3_fla::MainTimeline/frame202()
at flash.display::MovieClip/gotoAndStop()
at brainGame3_fla::MainTimeline/hitTestObjectAlc1Handler()

En de traces die in de enter frames die ik verwijder staan, blijven ook steeds opnieuw in de output komen.
Snap het echt niet meer.
Kan er iemand mij uitleggen hoe dit alles komt?