2010-06-10 10 views

답변

0

플래시가 클라이언트의 컴퓨터에서 실행되기 때문에 일부 AS 클래스에서 가져올 수 없습니다. 당신은 시간을 반환하고 자신의 시계를 동기화하는 전화를 서버에 스크립트가 필요합니다. 앱이 시작될 때 한 번만 할 수 있으며 요청을 한 순간과 다시 돌아 왔을 때 시간을 감안하여 네트워크 지연에 영향을받지 않도록 할 수 있습니다.

그리고 당연히 그 스크립트를 핑 (ping)하고 필요할 경우 다시 동기화 할 수 있습니다.

+0

-1 - _ "플래시가 클라이언트의 컴퓨터에서 실행되기 때문에 일부 AS 클래스에서 가져올 수 없습니다."_ 거짓입니다. 정말로 필요한 것은 서버의 HTTPResponse이며 서버 시간을 결정합니다. Flash는 소켓을 통해 완벽하게 액세스 할 수 있습니다. 표준'URLLoader'는 그러한 헤더를 노출하지 않지만 [as3httpclient] (https://github.com/gabriel/as3httpclient)와 같은 타사 라이브러리는 이러한 정보에 대한 액세스를 허용합니다. – merv

0
  • 초기화시 URLLoader을 사용하여 서버에서 시간을로드하십시오. 서버 스크립트는 Linux 신기원 이후로 UTC 또는 밀리 초 단위로 현재 시간을 전달할 수 있습니다. 서버에서 Flex 앱으로의 편도 이동 지연을 고려하려면 수신 된 값에 1-2 초를 더하십시오.
  • Date 클래스를 사용하여 로컬 시간 (클라이언트 시스템의 시간)을 읽고 서버 간 차이를 저장하십시오 변수의 시간 및 현지 시간.
  • 서버 시간으로 디지털 시계를 초기화하십시오.
  • 매 초마다 또는 enterFrame 이벤트 처리기에서 발생하는 타이머를 사용하여 시계를 업데이트하십시오.
  • 모든 시계 틱에서 1 초를 추가하는 대신 현지 시간을 읽고 저장된 차이를 추가하십시오. 이것은 timer/enterFrame이 지정된 간격으로 실행되는 것을 보장하지 않기 때문입니다. 앱이 컴퓨터가 무거울 경우 속도가 느려질 수 있습니다.
관련 문제