Как заполнить динамический текст во Flash из веб-службы? - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть запрос MS Access ProductDetailsAll, который запрашивается с помощью веб-службы ASP.net.Сервис просто заполняет таблицу данных результатами запроса.

Как настроить и передать параметры из Flash?Мне нужно искать ProductDetailsAll для записей, имеющих CategoryID 1 или 3 на основе выбора пользователя.Как CategoryID передается из Flash в веб-сервис?

Я создал прямоугольные объекты во Flash.Каждый из них должен содержать название продукта, описание, цену и изображение из запроса ProductDetailsAll.Как передать поисковую фразу из Flash в запрос?Использовать ли динамические текстовые поля для размещения возвращаемых значений?

Спасибо, Сид

РЕДАКТИРОВАТЬ Более подробно: у меня есть поле со списком cbRentalType со значениями 1 (Продажа), 3 (Партия) или Все.У меня есть поле со списком cbCatSelect, который должен прочитать подкатегорию из таблицы базы данных.У меня есть текстовое поле txtSearch, в котором будет находиться ключевое слово продукта, и его следует запрашивать из поля KeywordID в таблице базы данных.

Как установить исходящие переменные в Actionscript равными значениям вышеуказанных объектов?Как вернуть результаты запроса, соответствующие этим значениям, и отобразить их в переменные Flash?У меня есть 16 прямоугольных объектов в мувиклипе.Каждый из них будет содержать один элемент из результата запроса с выводом изображения продукта, названия продукта, описания и цены.Если запрос возвращает более 16 записей, как мне заполнить другой фрейм, чтобы он содержал полный результат запроса?
Наконец, я нашел пример кода, который используется для настройки соединения с веб-службой ASP.NET.Код 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;
}
}

}

1 Ответ

1 голос
/ 22 февраля 2011

Конкретное решение трудно увидеть со стороны, но можно с уверенностью сказать, что вам нужно работать с классом URLRequest и классом URLLoader.

Основная идея заключается в том, что для связи сфлеш-памятью к вашему серверному сценарию (ASP), вы хотите POST-данные к этому сценарию, беря флэш-переменные (строки, числа), добавляя их в свойство .data вашего объекта URLRequest, а затем используя класс URLLoader для «отправки» этих данныхк вашему скрипту asp.

Вот учебник, который обсуждает это с PHP - концепции остаются неизменными в ASP: http://www.kirupa.com/forum/showpost.php?p=2373966&postcount=1

Для связи из вашего скрипта обратно на флэш-память, вы захотитеиспользовать ту же базовую технику, но использовать обратный вызов onComplete (описанный выше) во флэш-памяти для доступа к вашим данным.

Обычная головная боль, с которой вы можете столкнуться, если flash & asp работает на разных серверах, является междоменной безопасностью.вопрос.Возможно, вам потребуется настроить соответствующие привилегии через файл crossdomain.xml.

... и да, вы захотите использовать динамические текстовые поля и установить их свойства .text (или .htmlText) для результатов.вашей ASP-страницы, где-то в вашем обратном вызове onComplete.

Надеюсь, это поможет - удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...