0

ユーザーがウェブカメラエミュレーターを使用できないようにしたいのですが、AS2ではsenocularの機能を使用してそれを実行しましたが、AS3では動作させることができないため、senocularによる古いバージョンを使用します。同じことを実行したいと思います。AS3で、 indexOfを使用しようとしましたが、機能しません。文字列の最初の4文字を少なくとも見つけて、AS3の配列内の項目と比較する必要があります。

String.prototype.startsWith = function(str){
        return !this.indexOf(str);
    }

これが私がやりたいことです:

var bannedDevices = new Array("FakeCam","SplitCam","Phillips Capture Card 7xx","VLC");

var myDeviceName = "SplitCam v1.5";  //"Splitcam" in bannedDevices should trigger this;

if (myDeviceName.indexOf(bannedDevices)){
   trace("banned device");
}

助けてくれてありがとう !

4

2 に答える 2

2

OK、前の答えは歴史に残しておきます。今、私はあなたが欲しいものを理解しました:

public function FlashTest() {
    var bannedDevices:Array = new Array("FakeCam","SplitCam","Phillips Capture Card 7xx","VLC");

    var myDeviceName:String = "SplitCam v1.5";  //"Splitcam" in bannedDevices should trigger this;

    trace(startsWith(myDeviceName, bannedDevices, 4));
}

/**
* @returns An array of strings in pHayStack beginning with pLength first characters of pNeedle
*/
private function startsWith(pNeedle:String, pHayStack:Array, pLength:uint):Array
{
    var result:Array = [];
    for each (var hay:String in pHayStack)
    {
        if (hay.match("^"+pNeedle.substr(0,pLength)))
        {
            result.push(hay);
        }
    }
    return result;
}
于 2011-04-15T17:57:29.867 に答える
1

必要性はあまり明確ではありません...これは、指定された文字列で始まる配列からすべての文字列を返す関数です。

public function FlashTest() {
    var hayStack:Array = ["not this one", "still not this one", "ok this one is good", "a trap ok", "okgood too"];

    trace(startsWith("ok", hayStack));
}

/**
* @returns An array of strings in pHayStack beginning with the given string
*/
private function startsWith(pNeedle:String, pHayStack:Array):Array
{
    var result:Array = [];
    for each (var hay:String in pHayStack)
    {
        if (hay.match("^"+pNeedle))
        {
            result.push(hay);
        }
    }
    return result;
}
于 2011-04-15T16:18:16.677 に答える