PDA

Просмотр полной версии : Ссылка на переменную


motoroller
04.01.2011, 18:45
Скажите как сделать:

есть перменные:

private var music:FileFilter = new FileFilter("Music Files (*.mp3)", "*.mp3");
private var client:FileFilter = new FileFilter("JPEG Files (*.jpg)", "*.jpg");


Далее я получаю из web переменные:

typeFiles = myFlashVars.type ? myFlashVars.type : any;


В данном случае у меня myFlashVars.type равна 'music'
Скажите как сделать чтобы в переменную передалась не текстовая строка 'music', а переменная music,
то есть поместился FileFilter

bav
04.01.2011, 19:17
Может так?

typeFiles = this[myFlashVars.type ? myFlashVars.type : "any"];

Bgg
04.01.2011, 19:19
Терпеть не могу тернарные операции. По простому то никак?

if(myFlashVars.type == "music")
{
typeFiles = new FileFilter("Music Files (*.mp3)", "*.mp3");
}
else if(myFlashVars.type == "client")
{
typeFilesr = new FileFilter("JPEG Files (*.jpg)", "*.jpg");
}

motoroller
04.01.2011, 19:29
а если таких типов 40?
что тут городить else if

Добавлено через 49 секунд
Может так?

typeFiles = this[myFlashVars.type ? myFlashVars.type : "any"];


Ну вот тут я опять троку передам а не значение переменной
а мне надо передать значение переменной

Bgg
04.01.2011, 19:34
Ну тогда ассоциативный массив создайте:

var fileTypes:Object = new Object();
fileTypes.music = new FileFilter("Music Files (*.mp3)", "*.mp3");
fileTypes.client = new FileFilter("JPEG Files (*.jpg)", "*.jpg");
fileTypes.rar = new FileFilter("RAR Files (*.rar)", "*.rar");
...
var typeFiles = fileTypes[myFlashVars.type]

bav
04.01.2011, 19:36
Создайте объект вида:

private var types:Object = {};
types.music = new FileFilter("Music Files (*.mp3)", "*.mp3");
types.client = new FileFilter("JPEG Files (*.jpg)", "*.jpg");

// и обращайтесь потом к нему
typeFiles = types[myFlashVars.type ? myFlashVars.type : "any"];


Добавлено через 4 минуты
Ну вот тут я опять троку передам а не значение переменнойОбъясните мне, малограмотному, почему? По-моему через this["music"] будет как раз идти обращение к приватной переменной, объявленной выше.