コード フローは次のとおりです。
ユーザーがページの「詳細のダウンロード」ボタンをクリック -> ボタンのクリック ハンドラーで s:CallResponder を使用して RPC メソッドの呼び出しが行われる -> RPC メソッドがファイルをダウンロードする場所から URL を生成して返す -> の成功イベント ハンドラーCallResponder は FileRefrence.download() を使用してファイルをダウンロードする URL を取得しますが、次のエラーをスローします。
エラー: エラー #2176: ポップアップ ウィンドウを表示するアクションなど、特定のアクションは、マウスのクリックやボタンの押下など、ユーザーの操作によってのみ呼び出される場合があります。flash.net::FileReference/download() で
コードは次のとおりです。
<fx:Script>
<![CDATA[
import mx.rpc.CallResponder;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function downloadButtonClickHandler(event:MouseEvent):void
{
var web_service:IWeb_service = Web_service.getInstance();
getDetails.token = web_service.getURLDetails();
}
public function onGetDetailsResult(event:ResultEvent):void
{
var response:URLResponse = event.result as URLResponse;
if(response != null && response.url != null)
{
var request:URLRequest = new URLRequest(response.url);
fileReference.download(request, "test.html");
}
}
public function onGetDetailsFault(event:FaultEvent):void
{
Alert.show("Error in downloading details");
}
]]>
</fx:Script>
<fx:Declarations>
<net:FileReference id="fileReference" />
<s:CallResponder id="getDetails" result="onGetDetailsResult(event)" fault="onGetDetailsFault(event)"/>
</fx:Declarations>
<s:HGroup width="100%" height="100%">
<s:Button label="Download Details" id="downloadButton"
click="downloadButtonClickHandler(event)" />
</s:HGroup>
File FileReference には、彼のケースでは発生していないユーザー操作が必要であるため、これを達成する他の方法はありますか?