ReferenceError: BlobPropertyBag не определен

Я использовал стабильную версию apache royal 0.9.7 для реализации функции отображения pdf с сервера.

Вот пример кода:

var byteCharacters:String = unescape(encodeURIComponent(pdfData));
var byteNumbers:Array = new Array(byteCharacters.length);

for (var i:int = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
}

var byteArray:Uint8Array = new Uint8Array(byteNumbers);
var file:Blob = new Blob([byteArray], {type: 'application/pdf'} as
BlobPropertyBag);
var fileUrl:String = URL.createObjectURL(file);

window.open(fileUrl);   

При попытке просмотреть файл pdf в консоли появляется следующая ошибка: ReferenceError: BlobPropertyBag is not defined

Я видел ту же проблему на https://github.com/apache/royale-compiler/issues/81, то я попробовал ночную версию 0.9.8, но проблема не исчезла.

Может ли кто-нибудь помочь, почему не обнаружена зависимость?


person Hadi    schedule 25.08.2020    source источник


Ответы (1)


То, что я вижу в коде фреймворка (например, org.apache.royale.storage.providers.WebStorageProvider, используется:

COMPILE::JS {
var blob:Blob = new Blob([text], new BlobPlainTextOptions());
fileWriter.write(blob);
}

... and in the same file add a helper class ...

COMPILE::JS
class BlobPlainTextOptions implements BlobPropertyBag
{
    public function get type():String
    {
        return "text/plain";
    }
    
    public function set type(value:String):void
    {
        
    }
}
person Carlos Rovira    schedule 26.08.2020
comment
Когда я добавляю вспомогательный класс в тот же файл, он не компилируется, говоря, что вложенный класс не разрешен. Затем я создал файл класса, но получаю эту ошибку: Bad dependency path or symbol: BlobPropertyBag - person Hadi; 27.08.2020
comment
Вероятно, вы добавляете класс внутри пакета, а я должен снаружи. Лучше всего проверить, как это сделано в коде фреймворка, и сравнить со своим кодом, чтобы увидеть различия. Есть несколько случаев. например, проверьте это: github.com/apache/royale-asjs/blob/ - person Carlos Rovira; 28.08.2020