あるディレクトリに置かれてる画像なんかのファイルの数を取得するのに、それだけのために別にファイルを用意するのもなんかなぁ・と思ったのでちょっと調べてみた。
まずそのディレクトリの”.htaccess”ファイルをいじってサーバがディレクトリの一覧を返すようになったところを、直接そのURLをたたいて強引に取得する方法を自分用にメモ。
.htaccessファイルに
Options Indexes
と記述。
Flash側で
var count:Number = 0;
var countXML:XML = new XML();
countXML.ignoreWhite = true;
function countImage():Void{
countXML.load(“http://www.hoge.com/hogehoge/”);
countXML.onLoad = function(succeded){
if(succeded){
var str:String = String( this.firstChild.childNodes[1].childNodes[1].childNodes[0] );
var srcStr:String = “.jpg<";
while( str.indexOf( srcStr ) > 0){
str = str.slice( str.indexOf( srcStr ) + srcStr.length );
count ++;/////
}
}
}
}
ってな処理。あくまでも今使ってるサーバの返し方に合わせた処理。
hetemlだともうちょい簡単にいける。
function countImage():Void{
countXML.load(“http://www.hoge.com/hogehoge/”);
countXML.onLoad = function(succeded){
if(succeded){
count = this.firstChild.childNodes[1].childNodes[1].childNodes.length – 1;/////
}
}
}
全く持ってスマートじゃあないけど、簡単にいけるのでこれでいいかな。
当初は
function countImage():Void{
countMcl.addListener(countListener);
countMcl.loadClip(“hoge/” + count++ + “.jpg”,count_mc);
countListener.onLoadStart = function(target:MovieClip){
countMcl.unloadClip(target);
countImage();
}
countListener.onLoadError = function(target:MovieClip,errorCode:String, httpStatus:Number){
max = count;
countMcl.unloadClip(target);
count_mc.removeMovieClip();
}
}
みたいにカウントしてたけど、連番じゃないと使えないからな・。Flash単体ならこんなもんだろ。