Flex Actionscript PHP и Mysql
Чем больше я читаю, тем больше это смущает меня...
Таким образом, внутри сценария действий я записываю функции проекта flex mobile, а внутри файлов php я записываю функции, с которыми я использую связь с базой данных?
Существуют ли примеры приложений, которые используют как ActionScript, так и PHP . Теперь я также запутался в amfphp. Любая помощь будет отличной
1 ответ
Вам пока не нужен amfphp, это для некоторых сложных случаев.
Для сохранения чего-либо в базу данных у вас уже есть правильная картинка: ваши команды базы данных (команды SQL с использованием PDO) должны быть в файлах.php.
А из вашего мобильного flex-приложения вы вызываете эти.php-файлы, используя URLLoader, URLStream (чуть более продвинутый) или HTTPService.
Вот вид из моего приложения, он еженедельно загружает топ игроков из PostgreSQL в формате JSON:
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
viewActivate="startLoading(event)"
viewDeactivate="cancelLoading(event)"
title="Weekly top">
<fx:Declarations>
<s:MultiDPIBitmapSource id="BACK"
source160dpi="@Embed('assets/icons/low-res/back.png')"
source240dpi="@Embed('assets/icons/mid-res/back.png')"
source320dpi="@Embed('assets/icons/high-res/back.png')"/>
<s:MultiDPIBitmapSource id="LOAD"
source160dpi="@Embed('assets/icons/low-res/load-top.png')"
source240dpi="@Embed('assets/icons/mid-res/load-top.png')"
source320dpi="@Embed('assets/icons/high-res/load-top.png')"/>
</fx:Declarations>
<s:states>
<s:State name="portrait"/>
<s:State name="landscape"/>
</s:states>
<s:navigationContent>
<s:Button icon="{BACK}" label.landscape="Back" click="navigator.popView()"/>
</s:navigationContent>
<s:actionContent>
<s:BusyIndicator symbolColor="0xFFFFFF" />
</s:actionContent>
<fx:Script>
<![CDATA[
import com.brokenfunction.json.decodeJson;
import spark.events.ViewNavigatorEvent;
private const TOP:String = 'http://XXXX.com/top-json.php';
private var _urlLoader:URLLoader = new URLLoader();
private function startLoading(event:ViewNavigatorEvent):void {
_urlLoader.addEventListener(Event.COMPLETE, handleComplete);
_urlLoader.load(new URLRequest(TOP));
}
private function cancelLoading(event:ViewNavigatorEvent):void {
_urlLoader.close();
}
private function handleComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
try {
var obj:Object = decodeJson(loader.data, true);
navigator.pushView(Top, obj.aaData);
} catch (e:Error) {
trace('Invalid JSON: ' + loader.data);
navigator.popView();
}
}
]]>
</fx:Script>
<s:BitmapImage source="{LOAD}" horizontalCenter="0" verticalCenter="0" scaleMode="letterbox" />
</s:View>