0

越读越让我困惑……

所以在动作脚本中我写下 flex 移动项目的功能,在 php 文件中我写下我用来联系数据库的函数?

是否有任何同时使用 actionscript 和 PHP 的示例应用程序。现在我也对 amfphp 感到困惑。任何帮助都会很棒

4

1 回答 1

0

您还不需要任何 amfphp,它适用于一些高级案例。

要将 smth 保存到数据库,您已经有了正确的图片:您的数据库命令(使用PDO的 SQL 命令)应该在 .php 文件中。

从您的移动 flex 应用程序中,您可以使用URLLoader、URLStream(稍微高级一点)或HTTPService调用这些 .php 文件。

这是我的应用程序中的一个视图,它以 JSON 格式加载来自 PostgreSQL 的每周顶级玩家:

<?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>
于 2012-10-25T07:26:25.070 回答