【问题标题】:How To Populate Dynamic Text in Flash from a Web Service?如何从 Web 服务填充 Flash 中的动态文本?
【发布时间】:2011-02-22 03:25:27
【问题描述】:

我有一个使用 ASP.net Web 服务查询的 MS Access 查询 ProductDetailsAll。该服务只是用查询结果填充数据表。

如何从 Flash 设置和传递参数?我需要根据用户选择搜索具有 CategoryID 1 或 3 的记录的 ProductDetailsAll。 CategoryID 如何从 Flash 传递到 Web 服务?

我在 Flash 中创建了矩形对象。每一个都必须包含来自 ProductDetailsAll 查询的产品名称、描述、价格和图像。如何将搜索短语从 Flash 传递到查询?我是否使用动态文本框来容纳返回的值?

谢谢, 席德

编辑 进一步阐述: 我有一个组合框 cbRentalType,其值为 1(销售)、3(派对)或全部。我有一个组合框 cbCatSelect 需要从数据库表中读取 SubCategory。我有一个文本框 txtSearch,它将包含产品关键字,应该从数据库表中的 KeywordID 字段中查询。

如何在 Actionscript 中设置出站变量等于上述对象的值? 如何返回匹配这些值的查询结果并将它们映射到 Flash 变量中? 我在影片剪辑上有 16 个矩形对象。每一个都将包含查询结果中的一项,并输出产品图像、产品名称、描述和价格。如果查询返回的记录超过 16 条,如何填充另一个框架以包含完整的查询结果?
最后,我找到了一个用于设置 ASP.NET Web 服务连接的代码示例。 AS3代码如下:

package  {

import flash.display.MovieClip;
import flash.events.MouseEvent;
import mx.rpc.soap.*;
import mx.rpc.events.*;
import mx.rpc.AbstractOperation;
import flash.events.Event;

public class MainDocument extends MovieClip {

private var ProductWebService:WebService;
private var serviceOperation:AbstractOperation;

public function MainDocument() {
// constructor code
addEventListener(Event.ENTER_FRAME, SetupWebService);

}

function SetupWebService(event:Event):void
{
var url:String ="http://www.mydomain.com/WebService/completedb.asmx?WSDL";

ProductWebService = new WebService();
ProductWebService.loadWSDL(url);

ProductWebService.addEventListener(LoadEvent.LOAD,BuildServiceRequest);
}

function BuildServiceRequest(evt:LoadEvent)
{
serviceOperation=ProductWebService.getOperation("GetProducts");
serviceOperation.addEventListene
(FaultEvent.FAULT,DisplayError);
serviceOperation.addEventListener
(ResultEvent.RESULT,DisplayResult);
serviceOperation.send([GenerateRandomNumber(0,9)]);
}

function DisplayError(evt:FaultEvent)
{
trace("error");
}

function DisplayResult(evt:ResultEvent)
{
var productName:String = evt.result as String;
productText.Text=productName;
}

function GenerateRandomNumber(min:int,max:int):int
{
return Math.floor(Math.random()*(1+max-min))+min;
}
}

}

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    从外部角度很难看到具体的解决方案,但可以肯定地说,您需要使用 URLRequest 类和 URLLoader 类。

    基本思想是,为了从 flash 与服务器端脚本 (ASP) 进行通信,您希望通过将 flash 变量(字符串、数字)添加到 URLRequest 对象的 .data 属性来将数据发布到该脚本,并且然后使用 URLLoader 类将该数据“发送”到您的 asp 脚本。

    这是一个使用 PHP 讨论这个问题的教程 - ASP 中的概念保持不变: http://www.kirupa.com/forum/showpost.php?p=2373966&postcount=1

    要从脚本与闪存通信,您需要使用相同的基本技术,但使用闪存中的 onComplete 回调(如上所述)来访问您的数据。

    如果 flash 和 asp 存在于不同的服务器上,您可能会遇到的一个常见问题是跨域安全问题。您可能需要通过 crossdomain.xml 文件设置适当的权限。

    ...是的,您需要使用动态文本字段并将它们的 .text(或 .htmlText)属性设置为 ASP 页面的结果,在 onComplete 回调中的某处。

    希望这会有所帮助 - 祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      相关资源
      最近更新 更多