Перетасовка массива в Actionscript 3 из определенного автономного пути к файлу

Как говорится в названии. Вот скрипт, который я сейчас использую

import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.events.Event;

playsong();

//var songs:Array=new Array("part0.mp3","part1.mp3","part2.mp3","part3.mp3","part4.mp3","part5.mp3","part6.mp3","part7.mp3","part8.mp3","part9.mp3","part10.mp3","part11.mp3","part12.mp3","part13.mp3","part14.mp3","part15.mp3","part16.mp3","part17.mp3","part18.mp3","part19.mp3","part20.mp3","part21.mp3","part22.mp3","part23.mp3","part24.mp3","part25.mp3","part26.mp3","part27.mp3","part28.mp3","part29.mp3","part30.mp3","part31.mp3","part32.mp3","part33.mp3","part34.mp3","part35.mp3","part36.mp3","part37.mp3","part38.mp3","part39.mp3","part40.mp3","part41.mp3","part42.mp3","part43.mp3","part44.mp3","part45.mp3","part46.mp3","part47.mp3","part48.mp3","part49.mp3","part50.mp3","part51.mp3","part52.mp3","part53.mp3","part54.mp3","part55.mp3","part56.mp3","part57.mp3","part58.mp3","part59.mp3","part60.mp3","part61.mp3","part62.mp3","part63.mp3","part64.mp3","part65.mp3","part66.mp3","part67.mp3","part68.mp3","part69.mp3","part70.mp3","part71.mp3","part72.mp3","part73.mp3","part74.mp3","part75.mp3","part76.mp3","part77.mp3","part78.mp3","part79.mp3","part80.mp3","part81.mp3","part82.mp3","part83.mp3","part84.mp3","part85.mp3","part86.mp3","part87.mp3","part88.mp3","part89.mp3","part90.mp3","part91.mp3","part92.mp3","part93.mp3","part94.mp3","part95.mp3","part96.mp3","part97.mp3","part98.mp3","part99.mp3","part100.mp3","part101.mp3","part102.mp3","part103.mp3","part104.mp3","part105.mp3","part106.mp3","part107.mp3","part108.mp3","part109.mp3","part110.mp3","part111.mp3","part112.mp3","part113.mp3","part114.mp3","part115.mp3","part116.mp3","part117.mp3","part118.mp3","part119.mp3","part120.mp3","part121.mp3","part122.mp3","part123.mp3","part124.mp3","part125.mp3","part126.mp3");
var sound:Sound;
var soundChannel:SoundChannel;
var randnum:uint;

function playsong()
{
    randnum=Math.floor(Math.random()*127);
    sound=new Sound();
    var songs:String= "part" + randnum + ".mp3";  
    sound.load(new URLRequest("parts/"+songs)); 
    soundChannel=sound.play();
    soundChannel.addEventListener(Event.SOUND_COMPLETE,playrandomsong);
}

function playrandomsong(e:Event)
{
    playsong();
}

И это работает... но только когда я сохраняю его в той же директории, что и SWF-файл. Мне нужно работать так, как если бы MP3 были в "D:/parts". Actionscript и flash на самом деле не для меня, поэтому я извиняюсь за свою нубиозность, но в конечном итоге мне нужен SWF-файл, который может перетасовывать MP3, расположенные в определенном каталоге ... поэтому любая помощь в этом очень ценится. ! Спасибо.


person user1735823    schedule 10.10.2012    source источник


Ответы (2)


Судя по вашему вопросу, вы просто хотите воспроизвести swf локально?

Если это так, вы сможете загружать локальные файлы из другого места, изменив:

sound.load(new URLRequest("parts/"+songs)); 

to

sound.load(new URLRequest("file:///D:/path/to/parts/"+songs)); 
person dezza    schedule 11.10.2012
comment
Ок, так что это полностью работает, но я попал в загвоздку. Приложение, для которого я планировал это использовать, старше и не поддерживает AS3 — только AS2 и старше. Вы знаете, можно ли это сделать и в AS2? Я пробовал тот же код, но он не загружает импорт. - person user1735823; 11.10.2012
comment
Да, вы можете загружать звуки в AS2. Этот пост может помочь stackoverflow.com /вопросы/593928/ - person dezza; 12.10.2012

Как я понимаю нет необходимости делать именно web-приложение. Это будет работать локально. Таким образом, вы можете создать приложение AIR с помощью ActionScript 3.

person Emin A. Alekperov    schedule 10.10.2012
comment
У вас есть пример сценария, который мне нужно было бы сделать, но с AIR? Я много гуглю, но это все очень запутанно для меня. - person user1735823; 11.10.2012
comment
@dezza дал абсолютно правильный ответ: sound.load(new URLRequest("file:///D:/parts/"+songs)); Вы можете использовать swf без AIR. Но вы должны установить в параметрах компиляции: Доступ только к локальным файлам. - person Emin A. Alekperov; 11.10.2012
comment
Работает как шарм. Большое спасибо! - person user1735823; 11.10.2012
comment
Ок, так что это полностью работает, но я попал в загвоздку. Приложение, для которого я планировал это использовать, старше и не поддерживает AS3 — только AS2 и старше. Вы знаете, можно ли это сделать и в AS2? Я пробовал тот же код, но он не загружает импорт. - person user1735823; 11.10.2012