2012-09-09 2 views
0

나는 firebreath 프레임 워크를 사용하여 NPAPI 플러그인을 작성했습니다. Javascript에서 간단한 숫자 값을 전달하고 내 (C++) 플러그인에 액세스하여 작업을 수행 한 다음 결과를 반환 할 수 있습니다. 벡터, 즉 배열에서 작동하는 법을 알고 싶습니다. 내 플러그인 안에 새로운 배열을 할당하고 자바 스크립트에서 배열을 복사하고 싶지는 않습니다. (어떻게 할 지에 대한 단서가 없습니다.) 내 플러그인의 JavaScript 배열에 직접 액세스하려면 어떻게해야합니까? 그것을 할 특별한 방법이 있습니까? Firebreath website에서C++/Plugin에서 Javascript Array에 액세스 하시겠습니까?

답변

1

:

자바 스크립트 객체는 FB :: JSObjectPtr 유형으로 사용할 수 있습니다. 당신이 사용할 수 있습니다 자바 스크립트 객체의 예는 다음과 같습니다 (방법 및/또는 값 회원)

  1. 자바 스크립트 객체를
  2. 자바 스크립트 배열 (수정할 계획이라고, 그렇지 않으면 당신은 컨테이너 유형을 사용할 수 있습니다)
  3. 콜백 용 Javascript 메서드

배열은 개체입니다. 등 getProperty에 (N) 또는 getProperty에 ("길이")로 값을 가져

또한 같은 방법을 사용할 수 있습니다

->는 JSAPI에 ("푸시", FB :: variant_list_of (발)) 등

을 (호출 당신은 또한 :

void doSomethingWithAnArray(const FB::JSObjectPtr& array) { ... } 

같은 것을 FireBreath 그것이 JS 객체가 단지이며, 객체 JS 어떤 종류의 말할 수없는 기억 보이는 방법을 사용한다 JSObjectPtr 유형을 사용하기 위해 방법; 실제 배열을 제공하지는 않지만 대신 다른 객체를 제공하는 경우에는 자체 오류 검색을 수행해야합니다.

+0

택시 기사에게 감사드립니다. 나는 js-ctypes (심지어 훨씬 더 간단하다) 사용을 고려 중이다. js-ctypes는 mozilla에 고유하며 확장에 사용된다는 것을 알고 있습니다. 어떤면에서 다른면보다 어떤면에서 어떤 차이가 있습니까? 확장 또는 플러그인인지에 대한 엄격한 요구 사항이 없습니다. 네이티브 라이브러리에 액세스 할 수 있어야합니다. – lucent

+1

어림짐작의 일반적인 규칙으로, 플러그 접속 식 이외에 무언가가 일을하는 경우에, 저 방법. 응용 프로그램에 대해 실행 가능한 다른 옵션이 없으면 플러그인을 사용해서는 안됩니다. 즉, 나는 js-ctypes를 사용한 적이 없다. 나는 연장을하지 않는다. 주된 단점은 여러 버전을 작성하지 않는 한 특정 브라우저로 사용자를 잠급니다. – taxilian

+0

감사. 잘했다. 나는 그것을 얻는다. .. – lucent