문제

HTML 페이지 내에서 Flex 앱의 x, y 좌표를 얻을 수 있습니까?"Internet Explorer에서 개체 태그의 id 속성 또는 Netscape에서 embed 태그의 이름 속성"을 가져오기 위해 ExternalInterface.ObjecID를 사용할 수 있다는 것을 알고 있지만 해당 단계를 통과할 수 없는 것 같습니다.해당 삽입 개체에 대한 핸들을 얻는 것이 가능할 것 같습니다.어떤 제안이 있으십니까?

감사해요.

도움이 되었습니까?

해결책

내 생각에 가장 쉬운 방법은 HTML 페이지에 일종의 JavaScript 라이브러리(예: jQuery)를 포함하고 해당 기능을 사용하여 DOM 노드의 위치와 크기를 결정하는 것입니다.나는 대략 다음과 같이 할 것이다:

var jsCode : String = "function( id ) { return $('#' + id).offset(); }";

var offset : Object = ExternalInterface.call(jsCode, ExternalObject.objectID);

trace(offset.left, offset.top);

이는 ActionScript 코드이지만 다음을 통해 JavaScript 코드를 실행합니다. ExternalInterface.jQuery를 사용하며 특히 offset DOM 노드의 왼쪽 및 위쪽 오프셋을 반환하는 메서드입니다.

jQuery 없이도 할 수 있는 방법을 살펴보면 다음과 같습니다. offset 메서드가 구현되고 jQuery 호출 대신 해당 코드가 포함됩니다.이렇게 하면 HTML에 jQuery를 로드할 필요가 없으며 Flex 앱은 자체 포함됩니다.내가 jQuery와 같은 라이브러리를 사용하도록 제안하는 이유는 브라우저가 이러한 작업을 다르게 수행하기 때문입니다.오프셋 계산이 브라우저마다 크게 다른지는 잘 모르겠지만 브라우저 차이로 인해 영향을 받는 것은 아닙니다.

내 예의 JavaScript는 embed/object 태그의 ID가 매개변수로 전달될 수 있도록 하는 익명 함수입니다. ExternalInterface.call, 그러나 원하는 경우 문자열 연결을 사용할 수 있습니다.

var jsCode : String = "$('#' +" + ExternalInterface.objectID + ").offset()";

var offset : Object = ExternalInterface.call(jsCode);

그것도 효과가 있을 것 같아요. 첫 번째 버전이 더 우아하다고 생각해요.

다른 팁

외부 사용자로서 페이지 내의 위치를 ​​측정하려는 경우 내 마음에 떠오르는 유일한 것은 MeasureIt이라는 Firefox 확장 프로그램입니다. 웹 페이지에서 다양한 측정을 위해 가끔 사용했습니다.

포함된 페이지 자체 내에서 프로그래밍 방식으로 이 작업을 수행하려고 합니까? 그렇다면 어떤 언어를 사용합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top