Первый таймер здесь.
Я пишу приложение, предназначенное для развертывания на мобильных платформах (iOS и Android). При этом используется целевая сборка Android Flash Builder 4.6 - в каталоге / assets / находится подкаталог, содержащий произвольное количество файлов .png.
Я кодирую загрузчик каталога следующим образом:
public function LoadFromDirectory(directoryName:String, store:Vector.<BitmapData>):Boolean
{
//Changed here: this should work on both the development environment, AND the device.
//Guess what...
imageDirectory = File.applicationDirectory.resolvePath("assets/" +directoryString);
//This is triggering on Android. Doesn't do so in ADL. Not tested on iOS yet,
//but come on, if it doesn't work here, it won't work on iOS...
if (!imageDirectory.isDirectory)
{
trace("Directory not found:" +imageDirectory.url);
return false;
}
/*Snip loop through the contents of this directory, loading anything that is
a PNG and storing the bitmapData of all loaded PNGs into the vector, one by one*/
/*This of course, ALL works in ADL*/
}
Это работает в виртуальных воздушных устройствах, но не работает на мобильных устройствах или при развертывании. Вот где я застрял.
Изменить: Хорошо, я пошел и сократил код файла до одной строки. Я должен использовать resolPath для кросс-платформенной совместимости; Кроме того, упаковщик из Flash Builder не видит подкаталог «assets \», если я не помещаю его в «bin-debug \», потому что именно туда скомпилирован SWF.
Все еще не решает проблему, хотя - по крайней мере, для сборки Android, я могу увидеть папку активов в apk (переименовав ее в .zip и распаковав все), и она правильная (наряду с XML-файлы приложения и SWF).
apk устанавливается и запускается, но isDirectory по-прежнему возвращает false, когда я отлаживаю на самом устройстве (опять же, не на ADL - только на устройстве). Комментирование всего этого сегмента if ... приведет к сбою приложения, потому что он не может найти каталог assets \.
Я так близко к решению проблемы; был бы признателен, если бы кто-то помог мне с последним шагом, потому что это требует кровавого возраста, чтобы выяснить
PS: Я хотел бы просто вставить изображения в FLA или SWC, что я делал раньше, и это работает. К сожалению, количество и название изображений в этом конкретном каталоге произвольно ; единственное, в чем я уверен - это поддерживаемые расширения.
PPS: использование этой функции: LoadImagesFromDirectory ("imagesdirectory"), которая должна выглядеть в app: / assets / imagesdirectory на любой платформе. Логическое возвращение предназначено для отладки (возвращает false, если каталог с таким именем не существует.)