チュートリアルの1つに基づいて小さなRSSリーダーを開発します。これは、HomeView上で、ユーザーがRSSアイテムのタイトルをクリックした後、DetailsView.mxmlにアプリプッシュビューを表示する単純なアプリケーションです。しかし、私には小さな問題があります。私はHomeViewにリフレッシュボタンを含めていますが、リストをスクロールしたり、アイテムをクリックしてからHomeViewリストに戻ったりするたびに、リフレッシュしています。これは多くのインターネット接続を使用します。このアプリケーションをアプリがopeninのときにロード(リフレッシュ)してから、リフレッシュボタンを押すだけでリフレッシュできるようにすることは可能ですか?フレックス4.5:アプリが開いてボタンをクリックしたときにのみリフレッシュ
P.S.あなたに
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:rssreader="services.rssreader.*"
xmlns:s="library://ns.adobe.com/flex/spark"
title="Elektro-Vozila" viewActivate="getData()">
<fx:Script>
<![CDATA[
import spark.events.IndexChangeEvent;
protected function getData():void
{
getDataResult.token = rssreader.getData();
}
import mx.events.CollectionEvent;
import valueObjects.Item;
protected function fixEntityReferences(event:CollectionEvent):void
{
myList.labelFunction = replaceEntity;
function replaceEntity(item:Item):String
{
var p1:RegExp = /(")/ig; // perhaps add more here later
var thisString:String = item.title.replace(p1, "");
trace(thisString);
return thisString;
}
}
protected function myList_changeHandler(event:IndexChangeEvent):void
{
var RSSItem:Object = myList.dataProvider.getItemAt(event.newIndex);
navigator.pushView(DetailsView, RSSItem);
}
private function refreshList():void
{
Object(navigator.activeView).getData();
}
]]>
</fx:Script>
<s:actionContent>
<s:Button label="Refresh"
click="refreshList()"/>
</s:actionContent>
<fx:Declarations>
<s:CallResponder id="getDataResult"/>
<rssreader:Rssreader id="rssreader"/>
<s:CallResponder id="getDataResult2"/>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:List bottom="0"
change="myList_changeHandler(event)"
id="myList"
itemRenderer="views.IconItemRenderer"
labelField="title"
left="0"
right="0"
top="0">
<s:AsyncListView list="{getDataResult.lastResult}"
collectionChange="fixEntityReferences(event)"/>
</s:List>
</s:View>
Heeey Shaun「いい男」:))私はこのコードに1つのエラーがあります。 "protected function getData(force:Boolean = false):void"というエラーが発生しました:1021:重複した関数定義。 – Roky
貼り付け済みで、既存のものを置き換えてはいけません。 AS3では、あなたが言っていることであるオーバーロードメソッドは許可されていません。オーバーロードは、メソッド呼び出しのデータ型が異なるが、メソッド名が同じであると言う異なる「シグネチャ」がある場合です。 AS3ではこれを行うことができませんので、既存のメソッドに貼り付けるだけで済みます。あるいは、古いものを2つ削除する必要があります。 – shaunhusain
嬉しい私はまだソースを持っていました:) – shaunhusain