将数组添加到 URL 字符串

发布于 2024-12-07 23:11:06 字数 3662 浏览 0 评论 0原文

我知道这个问题会有一个简单明显的答案,但我已经花了两天多的时间试图做到这一点,但没有运气(我是 Flex 新手) 基本上我正在尝试打开一个 webView,它将打开谷歌地图到数组中的位置

该位置来自从 facebook 事件获取的数组中的数据(工作正常并且会显示数据),但我正在努力将此信息传递给webView.loadURL 字符串

我想要在数组中的数据是“data.location”(我遇到问题的代码位于代码片段底部的 itemrenderer 中)

我尝试了很多不同的选项,现在我陷入了困境

<?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"
        title="Home" creationComplete="onLoad()">
<fx:Script>
<![CDATA[
    import mx.collections.ArrayCollection;
    [Bindable] private var facebookEvents:ArrayCollection;
    import com.facebook.graph.FacebookMobile;
    private function onLoad():void
    {
        if(FacebookMobile.getSession() != null) {
            getEvents()
        } else {
            eventsDataGrid.visible=false
            NotLogin.visible=true
        }

    }

    private function getEvents():void {
        var fql:String = "select name, location, pic, start_time from event where creator = 148839887036 and eid in (select eid from event_member where uid=148839887036)";
        FacebookMobile.fqlQuery(fql, handleGetEventsResponse);
    }

    private function handleGetEventsResponse(events:Object, fail:Object):void {
        if (events != null)
            facebookEvents = new ArrayCollection(events as Array);
        //else
            //status = "Error";
    }   
]]>
</fx:Script>

    <s:List id="eventsDataGrid" width="100%" height="100%" dataProvider="{facebookEvents}">
        <s:itemRenderer>
            <fx:Component>
                <s:ItemRenderer>
                    <fx:Script>
                        <![CDATA[
                            import com.facebook.graph.utils.FacebookDataUtils;
                            var webView:StageWebView = new StageWebView
                            var mapURL:String = ('http://maps.google.com/maps?f=d&hl=en&saddr='+ "{data.location}")
                            private function time2DateStr(time:String):String {
                                return FacebookDataUtils.stringToDate(time).toLocaleString();
                            }

                            protected function getDirections_clickHandler(event:MouseEvent):void
                            {
                                webView.stage = this.stage;
                                webView.viewPort = new Rectangle(0, 100, stage.stageWidth, stage.stageHeight);
                                webView.loadURL(mapURL);    
                            }

                        ]]>
                    </fx:Script>
                    <s:HGroup paddingBottom="10" paddingTop="10">
                        <s:Image source="{data.pic}"/>
                        <s:VGroup width="100%">
                            <s:Label text="{data.name}" fontWeight="bold" width="100%"/>
                            <s:Label text="Where: {data.location}"/>
                            <s:Label text="When: {time2DateStr(data.start_time)}"/>
                            <s:Label text="Get Directions" click="getDirections_clickHandler(event)" id="getDirections"/>
                        </s:VGroup>
                    </s:HGroup>
                </s:ItemRenderer>
            </fx:Component>
        </s:itemRenderer>
        </s:List>
    <s:Label visible="false" x="6" id="NotLogin" width="463" height="78" styleName="text"
             text="Sorry You Need To Be Logged In Via Facebook, Please Go Back and Log In, THANK YOU"/>

I know this questions is going to have an easy obvious answer but i have spent over two days now trying to do it with no luck (I am a Flex newbie)
Basically i am trying to open a webView that will open google maps to the location in an array

The location comes from data in an array taken from facebook events (that works fine and will display the data) but i am struggling with passing this information to the webView.loadURL string

The data i want in the array is 'data.location' (the code i am having issues with is in the itemrenderer towards the bottom of the code snippet)

I have tried so many different options i am now stuck

<?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"
        title="Home" creationComplete="onLoad()">
<fx:Script>
<![CDATA[
    import mx.collections.ArrayCollection;
    [Bindable] private var facebookEvents:ArrayCollection;
    import com.facebook.graph.FacebookMobile;
    private function onLoad():void
    {
        if(FacebookMobile.getSession() != null) {
            getEvents()
        } else {
            eventsDataGrid.visible=false
            NotLogin.visible=true
        }

    }

    private function getEvents():void {
        var fql:String = "select name, location, pic, start_time from event where creator = 148839887036 and eid in (select eid from event_member where uid=148839887036)";
        FacebookMobile.fqlQuery(fql, handleGetEventsResponse);
    }

    private function handleGetEventsResponse(events:Object, fail:Object):void {
        if (events != null)
            facebookEvents = new ArrayCollection(events as Array);
        //else
            //status = "Error";
    }   
]]>
</fx:Script>

    <s:List id="eventsDataGrid" width="100%" height="100%" dataProvider="{facebookEvents}">
        <s:itemRenderer>
            <fx:Component>
                <s:ItemRenderer>
                    <fx:Script>
                        <![CDATA[
                            import com.facebook.graph.utils.FacebookDataUtils;
                            var webView:StageWebView = new StageWebView
                            var mapURL:String = ('http://maps.google.com/maps?f=d&hl=en&saddr='+ "{data.location}")
                            private function time2DateStr(time:String):String {
                                return FacebookDataUtils.stringToDate(time).toLocaleString();
                            }

                            protected function getDirections_clickHandler(event:MouseEvent):void
                            {
                                webView.stage = this.stage;
                                webView.viewPort = new Rectangle(0, 100, stage.stageWidth, stage.stageHeight);
                                webView.loadURL(mapURL);    
                            }

                        ]]>
                    </fx:Script>
                    <s:HGroup paddingBottom="10" paddingTop="10">
                        <s:Image source="{data.pic}"/>
                        <s:VGroup width="100%">
                            <s:Label text="{data.name}" fontWeight="bold" width="100%"/>
                            <s:Label text="Where: {data.location}"/>
                            <s:Label text="When: {time2DateStr(data.start_time)}"/>
                            <s:Label text="Get Directions" click="getDirections_clickHandler(event)" id="getDirections"/>
                        </s:VGroup>
                    </s:HGroup>
                </s:ItemRenderer>
            </fx:Component>
        </s:itemRenderer>
        </s:List>
    <s:Label visible="false" x="6" id="NotLogin" width="463" height="78" styleName="text"
             text="Sorry You Need To Be Logged In Via Facebook, Please Go Back and Log In, THANK YOU"/>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝海 2024-12-14 23:11:06

我需要做的就是将数据添加到括号中(不知道正式名称),这里是

protected function directions_click (location:String):void
                                {
                                    navigateToURL(new URLRequest('http://maps.google.co.uk/maps?q=' + location));
                                }

按钮/标签

<s:Label text="Get Directions" fontFamily="lucida grande" fontSize="14" color="#3b5998" click="directions_click(data.location)"/>

all i needed to do was to add the data into the brackets (dont know the offical name) here it is

protected function directions_click (location:String):void
                                {
                                    navigateToURL(new URLRequest('http://maps.google.co.uk/maps?q=' + location));
                                }

and for the button/ label

<s:Label text="Get Directions" fontFamily="lucida grande" fontSize="14" color="#3b5998" click="directions_click(data.location)"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文