먼저 JS를 사용하여 데이터를 얻는다고 해서 웹서비스와 httpservice를 호출하는 것은 아니라는 점을 설명하겠습니다.
각 FLex 웹 프로젝트에는 index.html 파일이 포함된 bin-debug 폴더가 있습니다. 제가 개인적으로 이해한 바는 먼저 웹 페이지가 실행되면 mxml 파일이 컴파일된다는 것입니다. swf, 브라우저에 swf를 표시하는 방법은 이 html 파일을 통해 이루어지며, 이는 html 파일에 swf 개체 구성 요소를 포함하는 것과 같습니다. www.jb51.net
따라서 개인적으로 이 html에 js 코드를 작성하여 IP 주소를 얻는 것이 가능하다고 생각합니다. 따라서 다음 코드가 필요합니다.
index.html에 스크립트 태그를 추가하면 실제 코드는 다음과 같습니다.
Flex에서 호출하는 방법은 flash.external.ExternalInterface라는 Flex 클래스를 사용하는 것입니다.
ExternalInterface 클래스의 경우 Adobe에서는 다음과 같이 설명합니다.
ExternalInterface 클래스는 ActionScript와 Flash Player 컨테이너(예: JavaScript가 포함된 HTML 페이지) 간의 직접 통신을 가능하게 하는 애플리케이션 프로그래밍 인터페이스인 외부 API입니다. Adobe에서는 JavaScript와 ActionScript 간의 모든 통신에 외부 인터페이스를 사용할 것을 권장합니다.
Flash Player에서는 HTML 페이지에서 JavaScript를 사용하여 ActionScript 함수를 호출할 수 있습니다. ActionScript 함수는 JavaScript가 호출의 반환 값으로 즉시 받는 값을 반환할 수 있습니다.
이 함수는 fscommand() 메서드를 대체합니다.
ExternalInterface 클래스는 다음 브라우저 및 운영 체제 조합에서 사용할 수 있습니다.
브라우저 운영 체제 운영 체제
Internet Explorer 5.0 이상 Windows
Netscape 8.0 이상 Windows MacOS
Mozilla 1.7.5 이상 Windows MacOS
Firefox 1.0 이상 Windows MacOS
Safari 1.3 이상 MacOS
Linux용 Flash Player 9.0.31.0 이상 외부 인터페이스 클래스는 다음 브라우저에서 지원됩니다.
브라우저
Mozilla 1.7.x 이상
Firefox 1.5.0.7 이상
SeaMonkey 1.0.5 이상
ExternalInterface 클래스는 ActiveX® 또는 노출된 NPRuntime API를 지원하기 위해 사용자의 웹 브라우저가 필요합니다. 플러그인 스크립팅을 위해 일부 브라우저에서. 위에 나열되지 않은 브라우저 및 운영 체제 조합이라도 NPRuntime API를 지원하는 경우에는 ExternalInterface 클래스를 지원해야 합니다.
참고: SWF 파일을 HTML 페이지에 포함할 때 id 속성을 설정하고 object 및 embed 태그의 id 및 name 속성에 다음 문자가 포함되지 않았는지 확인하세요.
. - * / /
참고: Flash Player 버전 9.0.115.0 이상에서는 id 및 name 속성에 .(마침표) 문자를 허용합니다.
브라우저에서 실행되는 Flash Player 10 이상에서는 이 클래스를 사용하여 프로그래밍 방식으로 팝업 창을 열지 못할 수도 있습니다. 다양한 브라우저(및 브라우저 구성)는 언제든지 팝업을 차단할 수 있습니다. 팝업이 표시된다는 보장은 없습니다. 그러나 최대한 성공하려면 사용자 작업의 직접적인 결과로 실행되는 코드(예: 마우스 클릭 또는 키 누르기 이벤트에 대한 이벤트 핸들러)에서만 이러한 유형의 열린 팝업 창을 사용하십시오.
ActionScript를 사용하면 HTML 페이지에서 다음 작업을 수행할 수 있습니다.
JavaScript 함수를 호출합니다.
임의의 이름으로 인수를 원하는 만큼 전달하세요.
다양한 데이터 유형(부울, 숫자, 문자열 등)을 전달합니다.
JavaScript 함수에서 반환 값을 받습니다.
HTML 페이지에서 JavaScript를 사용하면 다음을 수행할 수 있습니다.
ActionScript 함수를 호출합니다.
표준 함수 호출 표기법을 사용하여 매개변수를 전달합니다.
자바스크립트 함수에 값을 반환합니다.
Flash Player는 현재 HTML 양식에 포함된 SWF 파일을 지원하지 않습니다.
참고: Adobe AIR에서는 HTMLLoader 컨트롤에 로드된 HTML 페이지의 JavaScript와 해당 HTML 페이지의 SWF 내용에 포함된 ActionScript 간에 통신하는 데 ExternalInterface 클래스를 사용할 수 있습니다.
mxml 파일에서 이 클래스를 사용하세요. js에서 ip와 pcname을 얻는 함수를 호출하세요.
pcName = 외부인터페이스.call("getClientPcName");
ip = 외부인터페이스.call("getClientIp")
Alert를 사용해 보고 작동하는지 확인할 수 있습니다. 또 다른 문제가 있습니다. 컴퓨터를 서버로 추가하면 서버에서 얻은 IP는 127.0.0.1이 됩니다.