2012-04-05 14 views
0

フレックスアプリケーション/ Webページがローカルファイルシステム内で実行されているか、ウェブサーバー(ローカルホストか一部のリモートサーバ)。うまくいけばそれは明らかです。 Javascriptに許容可能なものがあれば、もちろんAS3の機能が望ましいかもしれません。Webサーバーから呼び出されたかどうかを確認する

答えて

0

Applicationクラスは、プロパティを持っています。URL

url:String [読み取り専用]

言語バージョン:ActionScript 3.0
製品バージョン:Flex 4つの
ランタイムバージョン:Flash Player 10、AIR 1.5

このアプリケーションのSWFファイルがロードされたURL。

実装
パブリック関数URLを取得():文字列

+0

ありがとうございます。前にそれを使用しました。それを忘れてしまいました。 – Mark

1

アプリの現在のURLを取得するためにExternalInterfaceを使用し、スキームのための文字列を評価することができます:

ファイル:///
ます。http://
ます。https://

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       creationComplete="creationCompleteHandler(event)"> 

    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 

      protected function creationCompleteHandler(event:FlexEvent):void 
      { 
       trace(String(ExternalInterface.call(" function(){ return document.location.href.toString();}"))); 
      } 
     ]]> 
    </fx:Script> 

</s:Application> 
+0

そのような奇妙な - 私は今そのことについて考えていた - すべてのブラウザは間違いなく戻ってくる場合は不思議「ファイルを」ファイルとして提供されている場合。 – Mark

+0

これは、flash.system.Capabilitiesのようなものからこれを検証できる純粋なActionScriptテストです。セキュリティポリシーも役割を果たすべきです。どのように確実にこの実装があなたの環境でうまくいくかはっきりしていませんが、最初は実現可能です。 –

+0

もっと良いものが投稿されていない場合は、これを答えとしてマークします。 FlashplayerSA自体でテストすればうまくいかないでしょう。私が必要とする理由は、私の経験上、trustContentが "True"に設定されている場合、SWFLoaderは "file:"として実行しても動作しないからです。ローカルファイルシステムにcrossdomain.xmlを置いて、それを動作させる場所があれば、C:\またはどこでもそれを見つけられません。 trustContentをfalseにするか、SWFLoaderをローカルファイルシステムで実行しないでください。誰も私がそこに行方不明を知っている。 – Mark

関連する問題