웹 응용 프로그램에는 Flash (AS3)를 사용하여 사용자의 웹캠을 사용하여 사진을 찍은 다음 결과 바이트 배열을 PHP로 전달하여 재구성합니다 서버에 저장됩니다.ActionScript JPG 바이트 배열을 자바 스크립트 (및 결국 PHP)에 전달
그러나이 웹 응용 프로그램을 오프라인으로 전환 할 수 있어야하며 Gears를 선택해야합니다. 사용자는 앱을 오프라인으로 가져 와서 작업을 수행 한 다음 서버에 다시 연결하면 데이터를 Google의 중앙 데이터베이스와 "동기화"합니다.
더 이상 Flash와 상호 작용할 PHP가 없지만 사용자가 사진을 찍고 저장할 수 있도록해야합니다. Flash에서 로컬 데이터베이스로 만드는 JPG를 저장하는 방법을 알지 못합니다. 우리는 바이트 배열, 직렬화 된 문자열을 저장하거나 객체 자체를 실제로 유지 한 다음 PHP 또는 Flash (및 PHP)로 다시 전달하여 JPG를 다시 만들 수 있습니다.
우리는 시도 : 를 - 대신 PHP의 자바 스크립트에 바이트 배열을 전달하지만, 자바 스크립트 (객체가 그 방법을 박탈하는 것) 그것으로 무엇을 할 수있을 것 같지 않습니다 - 바이트를 stringifying Flash에서 배열 한 다음 자바 스크립트에 전달하지만, 우리는 항상 같은 문자열을 얻을 :
ÿØÿà
이제 우리가 통과 한 후 반환 노선에, 자바 스크립트에 전달, Flash의 문자열을 직렬화 생각하고 문자열을 다시 Flash로 변환 한 다음 PHP로 전달하여 JPG로 재구성합니다. (아휴). 우리 팀의 누구도 광범위한 플래시 배경을 갖고 있지 않으므로 조금 잃어 버렸습니다.
직렬화는 갈 수 있습니까? 이 작업을 수행하는보다 현실적인 방법이 있습니까? 누구든지 이런 종류의 경험이 있습니까? 아마도 우리는 AS에서 바이트 배열 클래스와 같은 자바 스크립트 클래스를 만들 수 있습니까?
앱이 실제로 브라우저에 있어야합니까? AIR를 사용하면 응용 프로그램을 사용자 OS에서 기본으로 실행하고 나중에 업로드/동기화 할 수 있도록 파일을 로컬로 저장하거나 SQLite 데이터베이스에 BLOB으로 저장할 수 있습니다. 아마도 빌드의 주요 변경 사항 인 것 같습니다. 이유는 대답으로 제안하는 대신 화를 냈습니다 ;-) – jolyonruss
브라우저에 살 필요가 없습니다. , 그러나 온라인 버전은 이미 쓰여지고 일하고있다. 또한 나머지 응용 프로그램 (사진은 단지 작은 부분 임)이 이식되어 잘 작동합니다. 현실적으로 우리는 전체 기능을 하나의 기능으로 AIR로 옮기고 싶지 않습니다. – Gus