Adobe Edge Animate считывает переменную сцены из действия символа

Я часами борюсь с этой композицией Edge Animate:

То, что я пытаюсь создать, - это выбор персонажа (несколько изображений), который вызовет другое текстовое сообщение внутри речевого пузыря (символа) для каждого человека.

Наряду с отдельным текстом у меня также есть 2 поля ввода (select2.js), которые находятся между текстовыми диапазонами. Для этого мне пришлось сгенерировать текстовые диапазоны и поля ввода в действии createComplete символа следующим образом:

    perscontent.html('<span style="font-weight: bold;">'+perstext[0]+'<br></span>'+
                    '<span>'+perstext[1]+'</span>'+
                    '<input id="tech" class="bubbleinput" style="margin-top: 5px" type="text" data-position="top" placeholder="mit der Technologie:"></input>'+
                    '<span>'+perstext[2]+'</span>'+
                    '<input id="probl" class="bubbleinput" style="margin-top: 5px" type="text" data-position="top" placeholder="das Problem/Produkt:"></input>'+
                    '<span>'+perstext[3]+'</span></p> ');

Как видите, есть переменная массива perstext, которая принимает значения из другого массива (содержащего отдельный текст) в зависимости от значения переменной этапа "pertoggle", которое я установил на этапе действие > композиция готова : sym.setVariable("perstoggle", "pers1select");

► А вот и начинается боль! Я не могу прочитать perstoggle:

    var cur = sym.getComposition().getStage().getVariable("perstoggle");
    console.log( "=> ", cur);

В журнале консоли отображается "undefined"... ЛЮБОЙ СОВЕТ? Заранее большое спасибо!

// РЕДАКТИРОВАТЬ С другой стороны, если я прочитаю переменную этапа perstoggle из функции обратного вызова, она внезапно отобразит правильное значение ("pers1text") на консоли. Но мои входы jquery select2 не загружаются:

    yepnope({

both: [

                    "select2.min.js",
                    "select2.css",
                    "pagestyle.css"

        ],

    callback: function(){


                    $("#tech").select2(......);

                    $("#probl").select2(.....);

                    var cur = sym.getComposition().getStage().getVariable("perstoggle");
                    console.log( "=> ", cur);

                    switch (cur){
                    case ("pers1select"): var perstext = pers1text;
                    break;

                    default : var perstext = pers2text;
                    }

person bluegreybrown    schedule 27.05.2014    source источник


Ответы (1)


почему бы не сделать это простым?

(простой пример)

откройте окно кода в Edge Animate (меню -> окно > код), нажмите на сцену и добавьте этот код:

var perstext;
perstext = "begin"; 
var foo = function() {
   $("#Stage_Rectangle").html('<span style="font-weight:bold;">'+perstext+'</span>');
};// will set the text on div Retan

это сделает функцию foo, которая обновляет перстекст, глобальной.

сначала вам нужно заставить его работать в начале. поэтому для этого добавьте stage>compositionready и добавьте этот код:

foo();

это запустит функцию foo в начале

и чтобы изменить его на что-то другое, добавьте событие клика на div или изображение и просто добавьте этот код:

perstext = "i changed!";
foo();

и это изменит пертекст и снова обновит его через foo();

person Edgehero    schedule 28.05.2014