FileReference.save()를 사용하여 메모리 문제가 발생했습니다. 내 Flash 응용 프로그램은 실시간으로 많은 양의 데이터를 생성하므로이 데이터를 로컬 파일에 저장해야합니다. 내가 알고 있듯이 Flash 10 (AIR과 반대)은 파일 스트리밍을 지원하지 않습니다. 그러나 더 나쁜 것은 FileReference.save()가 모든 데이터를 저장하기 전에 복제한다는 것입니다.FileReference.save() 중복 ByteArray
ByteArray의 사용자 지정 하위 클래스를 FileReference.save() 인수로 전달하면이 ByteArray 하위 클래스가 모든 읽기 *를 무시할 경우 어떻게됩니까?() 메소드를 호출합니다. 재정의 된 read *() 메서드는 응용 프로그램에서 데이터를 생성 할 때까지 기다렸다가이 데이터를 반환하고 메모리에서 즉시 제거합니다. 얼마나 많은 데이터가 생성 될지 알기 때문에 length/bytesAvailable 메서드를 재정의 할 수도 있습니다.
가능합니까? 어떻게해야하는지 몇 가지 힌트를 주시겠습니까? ByteArray의 하위 클래스를 만들고 별칭을 등록하고이 하위 클래스의 인스턴스를 FileReference.save()에 전달했지만, FileReference.save()는 ByteArray 인스턴스와 마찬가지로 처리합니다. 내 재정의 된 메서드 중 하나를 호출하십시오 ...
어떤 도움을 많이 주셔서 감사합니다!
불행하게도,이 내 문제가 해결되지 않으면 (내가 예보다 더 많은 작업이 필요할 수 있습니다 절단이 나 자신을 테스트 havn't는). URLLoader를 사용하여 데이터를 다운로드하는 경우 URLLoader.data를 FileReference.save()로 전달해야합니다. 그러면 URLLoader.data가 다시 복제됩니다. 그래서, 이것은 데이터가 두 번 메모리에 저장되는 결과를 낳을 것입니다 ... – bartekb
오, 미안합니다, 웬일인지 당신이 서버에 저장하려한다고 생각했습니다. JIRA에 두 번 저장되는 데이터에 관한 버그를 기록하고 싶습니다. 그렇지 않으면 ... 나는 FileReference.save가 로컬 디스크에 쓰는 유일한 방법이라고 생각한다. – quoo