Как я получаю конечную точку сервера в приложении гибкого провода запуска?

Сначала round ваш degrees, а затем вычислить реальные градусы

func getRotateAngle() {
    let radians = atan2(myView.transform.b, myView.transform.a)
    var degrees = radians * 180 / .pi
    degrees.round()
    let realDegrees = degrees >= 0 ? abs(degrees) : 360 + degrees
    print("Degrees:: \(realDegrees)")
}
5
задан Nik Reiman 8 April 2009 в 15:20
поделиться

4 ответа

Мы используем подкласс Application, который предлагает следующие методы:

 /**
  * The URI of the AMF channel endpoint. <br/>
  * Default to #rootURI + #channelEndPointContext + #this.channelEndPointPathInfo
  */
 public function get channelEndPointURI() : String
 {
    return this.rootServerURI + ( this.channelEndPointContext ? this.channelEndPointContext : "" ) + this.channelEndPointPathInfo
 }

 /**
  * The root URI (that is scheme + hierarchical part) of the server the application
  * will connect to. <br/>
  * If the application is executing locally, this is the #localServerRootURI. <br/>
  * Else it is determined from the application #url. <br/>
  */ 
 public function get rootServerURI() : String
 {
      var result : String = ""
      if ( this.url && ( this.url.indexOf("file:/") == -1 ) )
      {
           var uri : URI = new URI( this.url )
           result = uri.scheme + "://" + uri.authority + ":" + uri.port
      }
      else
      {
           result = this.localServerRootURI
      }

      return result 
 }

Это универсальное приложение поддерживает channelEndPointContext , channelEndPointPathInfo и localServerRootURI свойства (обычно «mycontext» и «/ messagebroker / amf /» в вашем примере, корень локального сервера используется, когда приложение выполняется через Flex Builder) в таких случаях он имеет файл : // URL).
Определение полного URI конечной точки затем выполняется с использованием либо свойства localServerRootURI , либо с помощью URL-адреса приложения , поскольку наши службы предоставляются тем же сервером, который обслуживает SWF-файл приложения (который является (насколько я понимаю, ваш случай тоже).

Итак, в вашем примере можно написать:

 <SuperApplication ...> <!-- SuperApplication is the enhanced Application subclass -->
    <mx:HTTPService id="myHTTPService" url="{this.channelEndPointURI}"/>
 </SuperApplication>

Начиная отсюда, можно также автоматически определить channelEndPointContext из URL приложения вместо жестко закодировать его, как показано в этом примере.

3
ответ дан 13 December 2019 в 22:16
поделиться

Почему бы не вызвать функцию javascript в оболочке через ExternalInterface для возврата значения location.hostname?

<mx:Script>
    <![CDATA[
        private var hostname:String;

        private function getHostName():void
        {
            hostname = ExternalInterface.call(getHostName);
        }
    ]]>
</mx:Script>

javascript в обертке:

<script type="text/javascript">
    function getHostName()
    {
        return location.hostname;
    }
</script>
1
ответ дан 13 December 2019 в 22:16
поделиться

Я использовал FlashVars для успешной передачи URL-адресов. В вашем шаблоне html:

var rootURL = location.href.substring(0,location.href.indexOf("flexBin"));    
...

AC_FL_RunContent(
    "src", "${swf}",
    "FlashVars", "rootURL="+rootURL,
    "width", "${width}",
...

А затем в flex:

service.rootURL = Application.application.parameters.rootURL;

Приятно то, что вы действительно можете таким образом передавать с сервера все, что захотите.

2
ответ дан 13 December 2019 в 22:16
поделиться

Вы можете использовать BrowserManager, чтобы получить информацию об URL.

var bm:IBrowserManager = BrowserManager.getInstance();
bm.init(Application.application.url);
var url:String = bm.base;

см. Также http://livedocs.adobe.com/flex/3/html/deep_linking_7.html#251252

1
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: