SWFAddress, пишите переключатель / кейс для более чем одного уровня? - PullRequest
1 голос
/ 21 сентября 2010

Я использую следующий переключатель / чехол для SWF-адреса:

switch (e.value)
{
    case "/A" :
        function A();
        break;

    case "/B" :
        function B();
        break;

    case "/C" :
        function C();
        break;

    case "/" :
        break;

}

Проблема в том, что когда я нахожусь в каком-либо разделе (A, B или C) ... есть другой уровень ссылок, скажем:

www.my-site.com/A/next-level-goes-here

www.my-site.com/A/something-else-in-the-A-level

www.my-site.com/A/third-thing-in-the-A-level

Я бы хотел написать кейс для всего, что происходит , вложенного внутри A, но как мне это сделать?

function anythingNestedInsideOfA()
{
 // handle all the stuff inside of A section here
}

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Используйте комбинацию if и substr:

var url:String=e.value;

if (url=="/A") {
 A();
} else if (url.substr(0,3)=="/A/") {
 anythingNestedInsideOfA();
} else if (url=="/B") {
 B();
} else if (url.substr(0,3)=="/B/") {
 anythingNestedInsideOfB();
} ...
1 голос
/ 22 сентября 2010

Я бы не использовал этот тип архитектуры.С моей точки зрения, вы должны передать этот URL-адрес в объект, который отвечает за этот уровень.В этом случае вы можете обрабатывать букву «А» так, как вы это делаете, затем отрывать ее и передавать покой в ​​этот объект, где вы показываете содержание А ... и так далее в глубине.Вероятно, это более общая и большая тема для StackOverflow.

...