<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
xmlns:components="components.*"
height="400" width="377" creationComplete="init()" currentState="Menu" xmlns:panels="components.panels.*" viewSourceURL="srcview/index.html">
<s:states>
<s:State name="Menu"/>
<s:State name="EditWord"/>
<s:State name="Search"/>
<s:State name="Test"/>
</s:states>
<fx:Style source="styles.css"/>
<fx:Script>
<![CDATA[
import com.EditWord;
import com.MenuSrs;
import com.Search;
import com.Test;
import com.networking.AmfPhpConnection;
import com.utils.Util;
import com.word.Language;
import com.word.Word;
import components.panels.PanelEditWord;
import components.popups.PopUpInfo;
import components.popups.PopUpLoading;
public static var amf:AmfPhpConnection;
public static var languages:Array = new Array();
public static var allDecks:Array = new Array();
public static var decksByLanguage:Object;
public static var words:Array = new Array();
public static var popUpInfo:PopUpInfo = new PopUpInfo();
public static var popUpLoading:PopUpLoading = new PopUpLoading();
private var menu:MenuSrs;
private var editWord:EditWord;
private var search:Search;
private var test:Test;
private function init():void
{
AmfPhpConnection.isLocal = false;
amf = new AmfPhpConnection(this);
Security.allowDomain("https://www.googleapis.com");
initData();
}
/** init data with amfphp - calls asynchronous methods */
private function initData():void
{
Util.showPopUpLoading(this, true);
amf.updateLanguages(initDecks);
}
/** updates data DeckList
* asynchronous : calls Php and listens result */
private function initDecks(_event:Event=null):void
{
amf.updateDecks(initMenu);
}
/** init Menu panel */
private function initMenu(_event:Event=null):void
{
if(menu == null){
menu = new MenuSrs(panelMenu);
menu.addEventListener(MenuSrs.EDIT_WORD, goToEditWord);
menu.addEventListener(MenuSrs.SEARCH, goToSearch);
menu.addEventListener(MenuSrs.TEST, goToTest);
Util.removePopUpLoading();
}
menu.init();
}
/** init Creation panel */
private function initEditWord(_word:Word=null):void
{
if(editWord == null){
editWord = new EditWord(panelCreation);
editWord.addEventListener(MenuSrs.MENU, goToMenu);
editWord.addEventListener(MenuSrs.SEARCH, goToSearch);
}
editWord.init(_word);
}
/** init Search panel */
private function initSearch(updateSearch:Boolean=false):void
{
if(search == null){
search = new Search(panelSearch);
search.addEventListener(MenuSrs.MENU, goToMenu);
search.addEventListener(MenuSrs.EDIT_WORD, goToEditWord);
}
search.init(updateSearch);
}
/** init Test panel */
private function initTest():void
{
if(test == null){
test = new Test(panelTest);
test.addEventListener(MenuSrs.MENU, goToMenu);
}
test.init();
}
/** go to state menu */
private function goToMenu(_event:Event):void
{
currentState = "Menu";
initMenu();
}
/** go to state creation */
private function goToEditWord(_event:Event=null):void
{
var word:Word = null;
if(currentState == "Search")
word = search.word;
currentState = "EditWord";
initEditWord(word);
}
/** go to state search */
private function goToSearch(_event:Event):void
{
var updateSearch:Boolean = false;
if(currentState == "EditWord")
updateSearch = true;
currentState = "Search";
initSearch(updateSearch);
}
/** go to state test */
private function goToTest(_event:Event):void
{
currentState = "Test";
initTest();
}
]]>
</fx:Script>
<panels:PanelMenu id="panelMenu" includeIn="Menu" x="10" y="10">
</panels:PanelMenu>
<panels:PanelEditWord id="panelCreation" includeIn="EditWord" x="10" y="10">
</panels:PanelEditWord>
<panels:PanelSearch id="panelSearch" includeIn="Search" x="10" y="10">
</panels:PanelSearch>
<panels:PanelTest id="panelTest" includeIn="Test" x="10" y="10">
</panels:PanelTest>
</s:Application>