Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ссылка на переменную (http://www.flasher.ru/forum/showthread.php?t=148517)

motoroller 04.01.2011 18:45

Ссылка на переменную
 
Скажите как сделать:

есть перменные:
Код AS3:

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

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

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

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

bav 04.01.2011 19:17

Может так?
Код AS3:

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


Bgg 04.01.2011 19:19

Терпеть не могу тернарные операции. По простому то никак?
Код AS3:

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 секунд
Цитата:

Сообщение от bav (Сообщение 961962)
Может так?
Код AS3:

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


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

Bgg 04.01.2011 19:34

Ну тогда ассоциативный массив создайте:
Код AS3:

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

Создайте объект вида:
Код AS3:

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"] будет как раз идти обращение к приватной переменной, объявленной выше.


Часовой пояс GMT +4, время: 08:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.