Adobe Animate CC-从JSON或TXT文件提取动态文本层?

Adobe Animate CC-从JSON或TXT文件提取动态文本层?,json,dynamic,adobe,animate-cc,Json,Dynamic,Adobe,Animate Cc,我在Adobe Animate CC 2015.2中创建了一个基本的HTML5画布动画,标题为3行。我需要能够从外部文件中输入文本,以便能够将其转换为不同的语言 有没有一个简单的方法可以做到这一点?还是应该将标准HTML绝对放在最上面?我知道这是一个老问题,但这里是我的解决方案,因为我花了一段时间才找到一个效果良好的解决方案 $.ajax({ type: 'GET', // changed from 'tybe' url: externalurl, dateType: '

我在Adobe Animate CC 2015.2中创建了一个基本的HTML5画布动画,标题为3行。我需要能够从外部文件中输入文本,以便能够将其转换为不同的语言


有没有一个简单的方法可以做到这一点?还是应该将标准HTML绝对放在最上面?

我知道这是一个老问题,但这里是我的解决方案,因为我花了一段时间才找到一个效果良好的解决方案

$.ajax({
    type: 'GET', // changed from 'tybe'
    url: externalurl,
    dateType: 'xml',
    success: function (xml) {
        var Text_Cta1 = $(xml).find("BtnText1")
            root.feedTitle.text = titles[0].textContent;
            $(xml).find("BtnText1").each(function () (
            $item = $(this);
            var itme = new Object();
            item.title = $item.find("Text_Cta1").text();
        feedItems.push('Text_Cta1');
        )};
    })
我需要在Animate CC中创建的一系列HTML 5动画中有多个动态文本框,这些动画用作引导转盘幻灯片放映的一部分。我希望以后能够添加多种语言,所以我为每种语言使用了一个json文件来存储文本内容,并按需加载

json示例:

{
  "1": {
    "name": "default_text", 
    "text": {"0" : "Error locating text content for this animation?"}
   }, 
  "2": {
    "name": "coating_systems", 
    "text": {"0" : "this animation has one text field"}
   }, 
  "3": {
    "name": "compatability_chart", 
    "text": {"0" : "this animation has more than one dynamic text field", "1" : "another text field"}
  }
}
该名称由父站点使用-这里我们只需要“文本”

在我的Adobe CC动画时间轴中:

    var that = this; 
    var loaded = false;
    json = {};  
    var loadJson = function(url)  
    {  
        var queue = new createjs.LoadQueue(true);  
        queue.on("fileload", onJsonLoaded, that);  
        queue.on("error", onJsonLoadError, that);  
        queue.loadFile({id:"json", src:url});  
    }  
    var onJsonLoaded = function(e)  
    {  
        that.json = e.target.getResult("json");  
        setText();  
    }  
    var onJsonLoadError = function(e)  
    {  
        console.log(e);  
    }  
    var setText = function()  
    {  
        var blocks = that.json; 
        var numblocks = Object.keys(blocks[id].text).length;
        // loop through the text block to assign to the matching count in the animation
        for (var i=0; i < numblocks; i++) {
            var txtField = eval('that.textField'+i);
            txtField.text = blocks[id].text[i];
        }
    }  

    //in my case, the "id" and "lang" gets passed from the parent window into the iframe with the animation in a bs carousel - uses data attributes
    var $anim_iframe = parent.document.querySelectorAll('.item.active .animation_iframe');
    if($anim_iframe.length > 0){
        var id = $anim_iframe[0].dataset.id;
        var lang = $anim_iframe[0].dataset.lang;
        var json_file = '/path/to/lang/'+lang+'.json';
        // load json, but don't bother if the animation loops
        if(loaded == false){
            loadJson(json_file);
        }
        loaded = true;
    }
var=this;
var-load=false;
json={};
var loadJson=函数(url)
{  
var queue=new createjs.LoadQueue(true);
on(“fileload”,onjsonload,that);
on(“error”,onJsonLoadError,that);
loadFile({id:“json”,src:url});
}  
var onjsonload=函数(e)
{  
that.json=e.target.getResult(“json”);
setText();
}  
var onJsonLoadError=函数(e)
{  
控制台日志(e);
}  
var setText=函数()
{  
var blocks=that.json;
var numblocks=Object.key(块[id].text).length;
//循环遍历文本块以指定动画中的匹配计数
对于(变量i=0;i0){
var id=$anim_iframe[0]。dataset.id;
var lang=$anim_iframe[0].dataset.lang;
var json_file='/path/to/lang/'+lang+'.json';
//加载json,但如果动画循环,就不用麻烦了
如果(已加载==false){
loadJson(json_文件);
}
加载=真;
}

在你的舞台上,你会有动态文本框,称为textField0、textField1、textField2等,它们与json文件中的“文本”相匹配。

我知道这是一个老问题,但我的解决方案是这样的,因为我花了一段时间才找到一个有效的

我需要在Animate CC中创建的一系列HTML 5动画中有多个动态文本框,这些动画用作引导转盘幻灯片放映的一部分。我希望以后能够添加多种语言,所以我为每种语言使用了一个json文件来存储文本内容,并按需加载

json示例:

{
  "1": {
    "name": "default_text", 
    "text": {"0" : "Error locating text content for this animation?"}
   }, 
  "2": {
    "name": "coating_systems", 
    "text": {"0" : "this animation has one text field"}
   }, 
  "3": {
    "name": "compatability_chart", 
    "text": {"0" : "this animation has more than one dynamic text field", "1" : "another text field"}
  }
}
该名称由父站点使用-这里我们只需要“文本”

在我的Adobe CC动画时间轴中:

    var that = this; 
    var loaded = false;
    json = {};  
    var loadJson = function(url)  
    {  
        var queue = new createjs.LoadQueue(true);  
        queue.on("fileload", onJsonLoaded, that);  
        queue.on("error", onJsonLoadError, that);  
        queue.loadFile({id:"json", src:url});  
    }  
    var onJsonLoaded = function(e)  
    {  
        that.json = e.target.getResult("json");  
        setText();  
    }  
    var onJsonLoadError = function(e)  
    {  
        console.log(e);  
    }  
    var setText = function()  
    {  
        var blocks = that.json; 
        var numblocks = Object.keys(blocks[id].text).length;
        // loop through the text block to assign to the matching count in the animation
        for (var i=0; i < numblocks; i++) {
            var txtField = eval('that.textField'+i);
            txtField.text = blocks[id].text[i];
        }
    }  

    //in my case, the "id" and "lang" gets passed from the parent window into the iframe with the animation in a bs carousel - uses data attributes
    var $anim_iframe = parent.document.querySelectorAll('.item.active .animation_iframe');
    if($anim_iframe.length > 0){
        var id = $anim_iframe[0].dataset.id;
        var lang = $anim_iframe[0].dataset.lang;
        var json_file = '/path/to/lang/'+lang+'.json';
        // load json, but don't bother if the animation loops
        if(loaded == false){
            loadJson(json_file);
        }
        loaded = true;
    }
var=this;
var-load=false;
json={};
var loadJson=函数(url)
{  
var queue=new createjs.LoadQueue(true);
on(“fileload”,onjsonload,that);
on(“error”,onJsonLoadError,that);
loadFile({id:“json”,src:url});
}  
var onjsonload=函数(e)
{  
that.json=e.target.getResult(“json”);
setText();
}  
var onJsonLoadError=函数(e)
{  
控制台日志(e);
}  
var setText=函数()
{  
var blocks=that.json;
var numblocks=Object.key(块[id].text).length;
//循环遍历文本块以指定动画中的匹配计数
对于(变量i=0;i0){
var id=$anim_iframe[0]。dataset.id;
var lang=$anim_iframe[0].dataset.lang;
var json_file='/path/to/lang/'+lang+'.json';
//加载json,但如果动画循环,就不用麻烦了
如果(已加载==false){
loadJson(json_文件);
}
加载=真;
}

在您的舞台上,您将有一个名为textField0、textField1、textField2等的动态文本框,与json文件中的“文本”匹配。

添加一个合理的解释将有助于理解代码片段。有什么不理解的?这可能不是很好的代码,但它是非常自我解释的。添加一个合理的解释将有助于理解代码片段。什么是不理解的?这可能不是一个好的代码,但它是非常不言自明的