首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flashvars中的json

flashvars中的json
EN

Stack Overflow用户
提问于 2011-01-19 04:26:05
回答 3查看 2.5K关注 0票数 1

我想在我的flashvars中使用josn,但是我遇到了麻烦

这是我的json

代码语言:javascript
复制
var flashvars = { 
                xmlFile: '<?php echo $preface.$xmlpath; ?>',
                preface: '<?php echo $preface; ?>',
                "preload": {
                    "url": "flash/someflash.swf",
                    "x": "375",
                    "y": "237"
                }
                };

这是我一直在尝试的

代码语言:javascript
复制
    var jsondata:String  = this.loaderInfo.parameters.preload;
    if(jsondata){
        //var jsonData:Object = JSON.decode(jsondata.toString()) ;

     error_txt.text = jsondata.toString();
    }

error_txt返回"object Object“,但我不能访问json对象的任何部分

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-19 08:15:09

我相信这里发生的事情是Javascript在flashvars变量上调用.toString(),并将结果字符串传递给flash。如果我的预感是正确的,那么您需要将JSON作为字符串传递,如下所示。

代码语言:javascript
复制
var flashvars = "{xmlFile:'myFile.xml',
                  preface:'Preface',
                   {
                    'url': 'flash/someflash.swf',
                    'x': '375',
                    'y': '237'
                   }
                 }";
票数 1
EN

Stack Overflow用户

发布于 2011-01-19 08:42:49

Flashvars作为名称/值对的集合传递,格式与GET或POST (url编码)参数相同。因此,对于名称和值,您都需要内容是字符串,并进行适当转义。除了硬编码JSON字符串,这很容易出错,您可以将数据写入php assoc数组中,然后将其编码为JSON,然后再对其进行url编码。结果字符串就是您将作为值传递的字符串。

类似这样的东西(我还没有真正测试过这个代码片段!)

代码语言:javascript
复制
<?php
$preload_data = array(
     "url"      => "flash/someflash.swf",
        "x"     => "375",
        "y"     => "237"
); 
$preload_flashvar = rawurlencode(json_encode($preload_data));
?>

var flashvars = { 
                xmlFile: '<?php echo $preface.$xmlpath; ?>',
                preface: '<?php echo $preface; ?>',
                preload: '<?php echo $preload_flashvar; ?>'
                };

PS

转念一想,很可能是SWFObject (你似乎正在用它来嵌入swf) (通过encodeURIComponent或一些自制函数)为你转义url;我不记得是不是这样,但如果是这样的话,你就不必在你的php代码中调用rawurlencode了,因为你的数据会被编码两次。我现在还不能测试它,但是在php中使用和不使用url编码都可以试试;两者中的一种应该可以正常工作。

票数 1
EN

Stack Overflow用户

发布于 2011-01-19 10:47:44

您实际上在哪里使用/需要JSON?...

代码语言:javascript
复制
var flashvars = { 
            xmlFile: '<?php echo $preface.$xmlpath; ?>',
            preface: '<?php echo $preface; ?>',
            preload: {
                       url: "flash/someflash.swf",
                       x: "375",
                       y: "237"
                      }
            };


//in AS3
var params:Object  = this.loaderInfo.parameters;

if(params != null)
{
  var preload:Object = params.preload;

  for( var name:String in preload )
      trace( preload[name] );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4728660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档