1

我有一个灵活的业务应用程序,需要创建一些控件来显示给定用户的 MSN 信使状态(在线、离开等)的小图片符号

或者,如何flex 表单中插入一个 html 页面?

MSN 网站上有一个 HTML 代码片段(应该是)做我想要的,这里是:

<a target="_blank" href="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=eb892994c712bb83@apps.messenger.live.com&mkt=ru-RU">
    <img style="border-style: none;" src="http://messenger.services.live.com/users/eb892994c712bb83@apps.messenger.live.com/presenceimage?mkt=ru-RU" width="16" height="16" />
</a>

(可以在这里找到:http ://settings.messenger.live.com/Applications/CreateHtml.aspx )

此外,我需要用用户的 cid 代码替换此代码段中的 eb892994c712bb83。如何在知道他/她的 MSN 帐户名称的情况下找到用户的 cid 是另一个问题......

4

2 回答 2

0

Flex 中的 HTML 支持(AIR 之外)非常有限。

另一种选择是使用Image控件:

<s:Image id="msnLiveStatusIcon"
         creationComplete="initStatus()"
         click="openMSNLive()" />

其中initStatusopenMSNLive的定义如下:

private var userCID:String = "eb892994c712bb83";

protected function initStatus():void {
  var iconURL:URLRequest = new URLRequest("http://messenger.services.live.com/users/" 
    + userCID + "@apps.messenger.live.com/presenceimage?mkt=ru-RU");

  msnLiveStatusIcon.source = iconURL;

  // poll to check for updated status
  var pollTimer:Timer = new Timer(60000); // once a minute
  pollTimer.addEventListener(TimerEvent.TIMER,
    function (e:TimerEvent):void {
      msnLiveStatusIcon.source = null;
      msnLiveStatusIcon.source = iconURL;
    });

  pollTimer.start();
}

protected function openMSNLive():void {
  navigateToURL(new URLRequest("http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee="
    + userCID + "@apps.messenger.live.com&mkt=ru-RU"),
    "_blank");
}

轮询是可选的。监听器的匿名函数仅用于简洁,不推荐用于生产。

于 2011-12-07T16:20:16.180 回答
0

好的,一周的调查和一些结果:

1) .NET 和 JavaScript 存在 MSN API - 可以从 ASP.NET 服务器端获取状态;

2) Microsoft Office 附带了一个名为 ActiveX 的神秘控件Name.NameCtrl,可以从 JavaScript 中使用它来检索 MSN 用户状态;

3) 最简单的方法是在
Flex 控件上使用 htmlText 属性,例如在 mx:TextArea 控件上。将问题中引用的 HTML 分配给 htmlText 属性“正常工作”。htmltext 属性的综合指南在这里:

html_text_property_help

于 2011-03-15T09:28:37.920 回答