小编miz*_*_sk的帖子

facebook是否允许在策略上登录任何未知域?

我正在考虑分发一个Flash游戏,可以将Facebook JS注入任何将托管它的网页(许多免费的Flash游戏门户).我可以window.open在主页设置时登录Facebook对话框allowScriptAccess.

我的一个想法是如何解决跨域登录问题(如何将accessToken返回到我在未知域上托管的Flash游戏,而不与跨域JS和所有这些浏览器问题作斗争)

  1. Flash生成唯一标记(标记)
  2. Flash打开与我们服务器的标签的彗星连接
  3. Flash会打开对话框OAUTH,转发标签redirect_uri以允许域
  4. 用户使用Facebook凭据登录,redirect_uri并通过活动的accessToken(CODE)和标记重定向到
  5. Facebook重定向到我们的服务器传递accessToken
  6. 我们的服务器从GET参数中获取CODE和标记并提取accessToken
  7. 我们的服务器通过标签识别的彗星将accessToken转发给Flash
  8. 最后 - Flash可以使用具有有效accessToken的 facebook功能

因为我不是律师,那些facebook政策文件对我来说是不可理解的......

问题: facebook是否允许在任何域上进行此类登录?我觉得我会以这种方式解决一些安全问题.

policy facebook cross-domain

7
推荐指数
1
解决办法
316
查看次数

Ant - 用mxmlc和compc替换fb.exportReleaseBuild

我有一个复杂的Flash Builder工作区,包含18个Flex库项目和1个AS3应用程序项目,它们之间存在许多依赖关系.

我已经为自动构建创建了一个ANT build.xml文件,但是我使用Flash Builder本身的ANT任务:

<fb.exportReleaseBuild project="..." destdir="..." failonerror="true" />
Run Code Online (Sandbox Code Playgroud)

它有效,但它带来一些缺点:

  • 没有调试版本
  • 需要安装Flash Builder(在Linux服务器上不可用)

所以我的问题是:有没有一种简单的方法如何通过项目用mxmlc和重写这个fb.exportReleaseBuild ANT任务到小任务compc

每个swc项目都有4个其他swc依赖项和其他需要链接嵌入的外部资产.

ant flash-builder

6
推荐指数
1
解决办法
708
查看次数

如何在两个浏览器中调试Flash/Flex?

我有一个Flex 4应用程序,它连接到基于FluorineFx的ASP.NET webservice .它通过cookie验证RemoteObject.setCreadentials()

两个应用程序都连接到FMS服务器,并通过RTMFP直接连接(P2P)相互通信.

我想通过单击(F11)一次在FirefoxInternet Explorer中调试此应用程序的两个实例.

现在我只能在一个浏览器中通过在Flash Builder 4中运行Debug来调试.我创建了双浏览器运行器,其中bat文件注册为默认浏览器Preferences > General > Web browser,如下所示:

start "IE" /b "c:\Program Files (x86)\Internet Explorer\iexplore.exe" -private %1
start "FF" /b "c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -private %1
Run Code Online (Sandbox Code Playgroud)

但这只是将调试器连接到Internet Explorer中首先运行应用程序的实例.

如何附加和调试两个实例?

谢谢.

browser apache-flex debugging actionscript flash-builder

4
推荐指数
1
解决办法
3630
查看次数

如何将一个Int64解码回两个Int32?

之前的问题是将二进制编码Int32为一个Int64[ C# - 从两个Int32中创建一个Int64

问题:如何将一个解码Int64回两个Int32

c#

3
推荐指数
1
解决办法
2509
查看次数

另一个获取C#中的属性名称(这个是静态的)

我看了,无处不在有很多例子如何做属性名称解析,但我没有发现这会解决我的用法.

我的想法User看起来像这样:

class Entity<T> where T : class
{
    public static String GetName<T>(Expression<Func<T, object>> expr)
    {
        return ((MemberExpression)expr.Body).Member.Name;
    }
}

class User : Entity<User>
{
    public String UserName { get; set; }
    public DateTime LastLoggedOn { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

问题:如果我想这样使用它,如何实现属性名称解析?

Debug.Assert("UserName" == User.GetField(x => x.UserName));
Debug.Assert("LastLoggedOn" == User.GetField(x => x.LastLoggedOn));
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.谢谢.

注意:我可以做var u = new User();,然后u.GetName(() => u.UserName)在我的情况下,我没有实体的实例

编辑1:感谢Darin,我更新了我的代码.我也需要LastLoggedOn工作.

调试显示,那个值expr{x => Convert(x.LastLoggedOn)}(不知道转换意味着什么)

InvalidCastException was unhandled …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection

3
推荐指数
1
解决办法
2292
查看次数

在STL上操作的generalize函数设置为所有集合

我创建了这个模板函数来查找和删除shared_ptr集合中的项目

template<class T>
bool FindAndDelete(set<shared_ptr<T>>& collection, shared_ptr<T> item)
{
    auto foundItem = find(collection.begin(), collection.end(), item);
    if(foundItem != collection.end())
    {
        collection.erase(foundItem);
        return true;
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:我怎样才能更多地概括它以涵盖所有收藏?(矢量,列表等......)

例如

template<class K, class T>
bool FindAndDelete(K<shared_ptr<T>>& collection, shared_ptr<T> item);
Run Code Online (Sandbox Code Playgroud)

注意:我来自C#,所以也许代码有点关闭:)请纠正我

c++ stl c++11

3
推荐指数
1
解决办法
137
查看次数

有什么方法可以在ActionScript 3中暂停NetStream类的网络流量?

这是我的用例:

我向用户展示一组小型播放视频.当用户点击其中一个小视频时,我会暂停所有小视频并加载点击的视频的更高比特率版本.

一切正常,除非它真的很慢,一些网络诊断表明问题是所有小视频继续加载,即使我在他们的网络上调用了pause().

要重新编写代码:

假设我有:

var nc:NetConnection = new NetConnection();
nc.connect (null);   

var ns1:NetStream = new NetStream(nc);        

var vid1:Video = new Video(WIDTH, HEIGHT);
vid1.attachNetStream(ns1);
ns1.play("video1.mp4");
stage.addChild(vid1);
Run Code Online (Sandbox Code Playgroud)

几秒钟后... vid1仍在加载,我想要做的是暂停vid1的视频流以及加载vid1的网络流量,以便下面的代码可以尽快运行

ns1.pause();

var ns2:NetStream = new NetStream(nc);
var vid2:Video = new Video(WIDTH, HEIGHT);
vid2.attachNetStream(ns2);
ns2.play("video2.mp4");
stage.addChild(vid2);
Run Code Online (Sandbox Code Playgroud)

...然后一段时间后用户解雇了vid2,所以我恢复了vid1的播放

ns1.resume();
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉ns1停止读取它的套接字?如果我打电话ns1.close(),那么我无法恢复播放ns1.resume().

如果我需要使用流媒体协议,那么在加载所有小视频时握手的重量是多少?我正在尝试快速加载大量低比特率(50kbps)视频.

谢谢!

flash actionscript-3

0
推荐指数
1
解决办法
651
查看次数