Может ли кто-нибудь предоставить мне скрипт для загрузки дочерних SWF-файлов (находится на компакт-диске) с помощью файла проектора (находится на диске c)? - PullRequest
1 голос
/ 04 мая 2011

Я хочу распространять приложение. Я хочу установить flash exe на диск c. Flash EXE загружает дочерние SWF-файлы, расположенные на компакт-диске. Проблема в том, как написать путь дочерних SWF-файлов. Разные системы будут иметь разные буквы, т. Е. D, e, f, g и т. Д. Для представления их дисковода компакт-дисков. Может ли кто-нибудь предоставить мне скрипт для загрузки дочерних SWF-файлов (находится на компакт-диске) с помощью файла проектора (находится на диске c) ??

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Я не знаю, что именно вы хотите сделать, но вы можете написать ужасный обходной путь для этого. Я не рекомендую это, поскольку это действительно просто, чтобы обойти проблему. Может быть, ваш вопрос совершенно другой, но это то, что можно понять из него.

Итак, учитывая проблему, у вас есть файлы на компакт-диске, и вы хотите получить к ним доступ. Теперь вы не знаете букву диска, поэтому не знаете, как загрузить файл.

Теперь, если мы зададим другое условие для проблемы, мы можем сделать обходной путь. Допустим, на компакт-диске вы всегда можете найти определенный файл. Если нет, то создайте файл с именем, которое всегда будет на вашем компакт-диске (если у вас разные версии).

Тогда задача состоит в том, чтобы найти букву диска:

var abc:String = "abcdefghijklmnopqrstuvwxyz";

var letter_to_check:String = abc.charAt(0);

checkNextLetter();

function checkNextLetter():void
{
    if(abc.length == 0) return;

    letter_to_check = abc.charAt(0);

    var ldr:Loader = new Loader();
    ldr.contentLoaderInfo.addEventListener("complete", ldrDone);
    ldr.contentLoaderInfo.addEventListener("ioError", ldrError);
    ldr.load(new URLRequest(letter_to_check + ":\\yourfile.txt"));
}

function ldrDone(evt:*):void
{
    trace(letter_to_check, "loaded");
    abc = abc.slice(1);
    checkNextLetter();
}

function ldrError(evt:*):void
{
    trace(letter_to_check, "not loaded");
    abc = abc.slice(1);
    checkNextLetter();
}

Теперь ваш yourfile.txt должен находиться в корне вашего компакт-диска. Если вы запустите эту программу, вы увидите следы и увидите, когда она найдет файл.

Таким образом, каждый раз, когда запускается ldrDone, вы обнаруживаете диск с файлом.

Итак, если вы готовы использовать этого монстра (не делайте этого), поместите его в начало вашей программы, прежде чем что-либо произойдет. Затем вы можете сохранить букву диска и использовать ее позже, когда вам нужно будет знать, откуда загружать файлы.

Надеюсь, это поможет.

0 голосов
/ 04 мая 2011

Если вы готовы использовать сторонний проектор, тогда я могу вам помочь.Я написал сообщение в блоге под названием Избегание ошибок Windows Drive Not Ready , в котором показано, как перечислить все диски в системе и найти их метки.В этом примере требуется SWF Studio (продукт, который я написал), но он довольно легко решает вашу проблему.

Все, что вам нужно сделать, это присвоить вашему компакт-диску метку тома (которую вы можете контролировать), а затем искать эту метку, когдаВы перечисляете диски.В блоге есть пример.Так что если вы знаете путь к файлу на CD, вы можете просто получить к нему доступ напрямую.Если вы хотите оставить его более открытым, в SWF Studio есть команды, которые позволят вам получить список всех файлов на компакт-диске.

SWF Studio также может сообщить вам, является ли обнаруженный диск жестким диском, дискетой или съемным носителем, чтобы вы могли запретить людям копировать ваш диск на жесткий диск с такой же меткой тома, что и примитив.(очень примитивная) форма защиты от копирования.

Просто дайте мне знать, если вы хотите / хотите увидеть больше примеров.

Еще один плюс в том, что SWF Studio будет работать с AS1, AS2 иAS3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...