JavaEE + ActionScript 3.0

24 Янв
2012

Статья будет короткой, но, надеюсь, полезной.

Java отлично работает с SQL, ActionScript с графикой. Необходимо было обеспечить доступ из swf-ролика к базе данных.
Итак, задача: связать swf файл с сервером написанным на JavaEE.
Как оказалось, ничего сложного в этом нет, однако готового решения в интернете я не нашел.

По запросу localhost:8084/MaxxMess/PlanetControl/getmapping?planetname=testplanet
Сервлет выдергивает из базы необходиую инфу о планете и генерит результат:

protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        String requestPath = request.getPathInfo();
        PrintWriter writer = response.getWriter();

        //returns planet land mapping

        if(requestPath.equals("/getmapping")) try {
            writer.print(PlanetMapping.load(request.getParameter("planetname")));
        } catch (ClassNotFoundException ex) {
            writer.print("Error: planet mapping not found");
        }

}


Код класса PlanetMapping.load(String planetname) представляет собой парсинг резалт сета, полученного при помощи JDBC из базы — о работе с JDBC материала достаточно, поэтому позвольте пропустить этот момент.

В ролике создаем URLLoader и передаем ему в качестве реквеста ссылку на наш сервлет (понятно что вместо testplanet можно поставить все что угодно) и парсим полученную строку:

import flash.net.URLRequest;

var loader:URLLoader = new URLLoader();
var urlRequest:URLRequest;

var mapping:String
var map:MovieClip = new MovieClip();
stage.addChild(map);

loader.addEventListener(Event.COMPLETE, onLoadCompl);

function onLoadCompl(event:Event):void
{
	mapping = new String(loader.data);
	parsemapping();
}

urlRequest = new URLRequest("http://localhost:8084/MaxxMess/PlanetControl/getmapping?planetname=testplanet");
loader.load(urlRequest);



По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх