package {
import flash.events.*;
import flash.net.*;
import SWFAddress;
import SWFAddressEvent;
public class Model extends EventDispatcher implements IModel
{
private var selectedView:String;
private var gateway:String = "amfphp/gateway.php";
private var connection:NetConnection = new NetConnection;
private var responder:Responder = new Responder(onResult, onFault);
private var myLoader:URLLoader;
private var myXML:XML = new XML();
public function Model()
{
//connection.connect(gateway);
loadData();
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, SWFHandler);
}
private function SWFHandler(e:SWFAddressEvent)
{
this.selectedView = SWFAddress.getValue();
this.update();
}
private function loadData():void
{
var XML_URL:String = 'sample.xml';
var myXMLURL:URLRequest = new URLRequest(XML_URL);
myLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
myLoader.load(myXMLURL);
}
private function xmlLoaded(event:Event):void
{
this.myXML = XML(myLoader.data);
this.update();
}
public function getXml():XML
{
if(this.myXML != null)
{
return this.myXML;
}
else
{
return null;
}
}
public function setView(c:String):void
{
this.selectedView = c;
//SWFAddress.setTitle(c);
SWFAddress.setValue(c);
this.update();
}
public function getView():String
{
return this.selectedView;
}
public function callGateway():void
{
//connection.call("Service.lookUpGenre", responder, selectedView);
}
private function onResult(result:Object):void
{
trace(result);
}
private function onFault(fault:Object):void
{
//trace(String(fault.description));
}
protected function update():void
{
dispatchEvent(new Event(Event.CHANGE));
}
}
}