функция количество выполнений и проблема активации - PullRequest
0 голосов
/ 09 декабря 2018

Ниже приведен код простого совпадения букв с их теневой игрой.4 буквы, выбранные случайным образом из всех 24, отображаются на экране вместе с их тенями.

Буквы можно перетаскивать, и если они попадают в свою тень, они прилипают к ней.Соответствующие объекты названы соответственно: альфа, бита, гама, дельта и их тени: alfa_shadow и т. Д.

Каждой букве соответствует оценка: оценка1, оценка2, оценка 3, оценка4.Когда буква попадает в теневую цель, ее оценка становится 1 из 0. Под линией настройки счета есть линия трассировки счета, просто чтобы проверить, что происходит.

Также есть функция проверки счета «Score_check».”, Которая проверяет, равны ли все четыре оценки 1, затем переходит к следующей сцене.

У меня две проблемы:

1.

Первый раз, когда буквасовпало, все работает нормально.

При втором совпадении с буквой линия трассировки работает дважды

В третий раз при сопоставлении буквы линия трассировки работает три раза

ЧетвертыйПри совпадении буквы линия трассировки работает четыре раза.

Это происходит независимо от порядка, в котором я сопоставляю буквы и тени.Я не могу понять, почему это происходит, код для каждой буквы точно такой же, меняются только имена переменных и функций.

Функция Score_check никогда не активируется.Я даже пытался заменить && на ||безуспешно.

Есть идеи?

thanx

import flash.text.engine.EastAsianJustifier;
import flash.events.Event;

var gramata:Array = new Array(cpencil_1, cpencil_2, cpencil_3, cpencil_4, cpencil_5, cpencil_6, cpencil_7, cpencil_8, cpencil_9, cpencil_10, cpencil_11, cpencil_12, cpencil_13, cpencil_14, cpencil_15, cpencil_16, cpencil_17, cpencil_18, cpencil_19, cpencil_20, cpencil_21, cpencil_22, cpencil_23, cpencil_24);
var shadows:Array = new Array(shadow_01, shadow_02, shadow_03, shadow_04, shadow_05, shadow_06, shadow_07, shadow_08, shadow_09, shadow_10, shadow_11, shadow_12, shadow_13, shadow_14, shadow_15, shadow_16, shadow_17, shadow_18, shadow_19, shadow_20, shadow_21, shadow_22, shadow_23, shadow_24);
var gramata_choice:Array = [];
var shadow_choice:Array = [];
var choice:Array = [];
var score:Number = 0;
var score1:Number = 0;
var score2:Number = 0;
var score3:Number = 0;
var score4:Number = 0;


function score_check():void
{
    if(score1==1 && score2==1 && score3==1 && score4==1)
    {
            gotoAndStop(1, "Scene2");
    }
}

function dialekse_auto():void
{
    for (var i:uint=0; i<4; i++)
    {
        choice[i] = uint(Math.random()*gramata.length);
        gramata_choice[i] =  gramata[choice[i]];
        shadow_choice[i] =  shadows[choice[i]];
        trace(gramata_choice[i])
    }
}

function emfanise_auto():void
{
    var alfa_shadow = new shadow_choice[0];
    alfa_shadow.x = 300;
    alfa_shadow.y = 200;
    addChild(alfa_shadow);
    var alfa = new gramata_choice[0];
    alfa.x = 100;
    alfa.y = 400;
    addChild(alfa);
    alfa.mouseEnabled = enabled;
    alfa.addEventListener(MouseEvent.MOUSE_DOWN, traba);
    stage.addEventListener(MouseEvent.MOUSE_UP, stamata);
    function traba(e:Event):void
        {
            alfa.startDrag();
        }
    function stamata(e:MouseEvent):void
        {
            if(alfa.hitTestObject(alfa_shadow))
            {
                alfa.stopDrag();
                alfa.x = 300;
                alfa.y = 200;
                score1 = 1;
                trace(score1);
            }
            else
            {
                    alfa.x = 100;
                    alfa.y = 400;
                    alfa.stopDrag();
            }
        }
    var bita_shadow = new shadow_choice[1];
    bita_shadow.x = 100;
    bita_shadow.y = 200;
    addChild(bita_shadow);
    var bita = new gramata_choice[1];
    bita.x = 200;
    bita.y = 400;
    addChild(bita);
    bita.mouseEnabled = enabled;
    bita.addEventListener(MouseEvent.MOUSE_DOWN, traba2);
    stage.addEventListener(MouseEvent.MOUSE_UP, stamata2);
    function traba2(e:Event):void
        {
            bita.startDrag();
        }
    function stamata2(e:MouseEvent):void
    {
            if(bita.hitTestObject(bita_shadow))
            {
                bita.x = 100;
                bita.y = 200;
                bita.stopDrag();
                score2 = 1;
                trace(score2);
            }
            else
            {
                bita.x = 200;
                bita.y = 400;
                bita.stopDrag();
            }
}
    var gama_shadow = new shadow_choice[2];
    gama_shadow.x = 400;
    gama_shadow.y = 200;
    addChild(gama_shadow);
    var gama = new gramata_choice[2];
    gama.x = 300;
    gama.y = 400;
    addChild(gama);
    gama.mouseEnabled = enabled;
    gama.addEventListener(MouseEvent.MOUSE_DOWN, traba3);
    stage.addEventListener(MouseEvent.MOUSE_UP, stamata3);
    function traba3(e:Event):void
        {
            gama.startDrag();
        }
    function stamata3(e:MouseEvent):void
        {
            if(gama.hitTestObject(gama_shadow))
            {
                gama.stopDrag();
                gama.x = 400;
                gama.y = 200;
                score3 = 1;
                trace(score3);
            }
            else
            {
                gama.x = 300;
                gama.y = 400;
                gama.stopDrag();
            }
        }
    var delta_shadow = new shadow_choice[3];
    delta_shadow.x = 200;
    delta_shadow.y = 200;
    addChild(delta_shadow);
    var delta = new gramata_choice[3];
    delta.x = 400;
    delta.y = 400;
    addChild(delta);
    delta.mouseEnabled = enabled;
    delta.addEventListener(MouseEvent.MOUSE_DOWN, traba4);
    stage.addEventListener(MouseEvent.MOUSE_UP, stamata4);
    function traba4(e:Event):void
        {
            delta.startDrag();
        }
    function stamata4(e:MouseEvent):void
        {
            if(delta.hitTestObject(delta_shadow))
            {
                delta.stopDrag();
                delta.x = 200;
                delta.y = 200;
                score4 = 1;
                trace(score4);
            }
            else
            {
                delta.x = 400;
                delta.y = 400;
                delta.stopDrag();
            }
        }
}

score_check();
dialekse_auto();
emfanise_auto();

stop();
...