Руководство по actionscript. часть 3, стр. 023

Public class EnglishSearchOptions extends SearchOptions { private var kanjiInResults:Boolean = false;

public function getKanjilnResults ( ):Boolean { return kanjiInResults;

}

public fun’ction setKanjiInResults (newKanjiInResults:Boolean):void { kanjiInResults = newKanjiInResults;

}

}

}

Наконец, рассмотрим основной класс приложения JEDict ionary, в котором происходит основная «магия», связанная с использованием пространств имен. Бегло просмотрите код класса, представленный в листинге 17.7, после чего мы рассмотрим его более подробно.

Листинг 17.7. Класс JEDictionary

package { import flash. display. Sprite;

public class JEDictionary extends Sprite { private var queryMan:QueryManager;

japanese var options:JapaneseSearchOptions; english var options:EnglishSearchOptions;

private var lang:Namespace;

public function JEDictionary( ) { queryMan = new QueryManager( );

japanese::options = new JapaneseSearchOptions( );

japanese::options. setMatchType(SearchOptions. MATCH_STARTSWITH);

japanese: :options. setEnglishVari ant (JapaneseSearchOptions. ENGLISHES);

english::options = new EnglishSearchOptions( );

engl i sh::opti ons. setMatchType(SearchOpti ons. MATCH_CONTAINS);

engli sh::opti ons. setKanjiInResul ts(true);

// Найти перевод японского слова… setModeJapaneseToEnglish( ); findWordC’sakana»);

// Найти перевод английского слова… setModeEnglishToJapaneseC ); findWordC’fish»);

}

public function findWord (word:String):void { var words:Array = queryMan. lang::search(word, lang::options); tracer Words found: » + words);

public function setModeEnglishToJapanese ( ):void { lang = english;

}

public function setModeJapaneseToEnglish ( ):void { lang = japanese;

}

}

}

Итак, основной класс приложения JEDictionary расширяет класс Sprite: public class JEDictionary extends Sprite {

Для поиска класс JEDictionary создает экземпляр класса QueryManager, который присваивается переменной queryMan:

private var queryMan:QueryManager;

Затем класс JEDictionary создает две переменные, каждая из которых имеет локальное имя options, уточняемое пространствами имен j apanese и english. Эти переменные хранят настройки поиска, которые будут передаваться в метод экземпляра search ( ) класса QueryManager. Обратите внимание, что их типы данных соответствуют типу выполняемого поиска:

japanese var options:JapaneseSearchOptions; english var options:EnglishSearchOptions;

После этого идет определение важной переменной lang, которая ссылается на пространство имен, соответствующее текущему режиму словаря (японскому или английскому):

private var lang:Namespace;

Это все, что касается переменных класса JEDictionary; теперь рассмотрим его методы: setModeEnglishTo Japanese ( ), setModeJapaneseToEnglish ( ) и findWord ( ). Они активизируют различные режимы словаря, присваивая переменной lang пространство имен english или j арапеse соответственно:

public function setModeEnglishToJapanese ( ):void { lang = english;

}

public function setModeJapaneseToEnglish ( ):void { lang = Japanese;

}

Метод findWord ( ) применяет объект класса QueryManager для выполнения поиска в словаре, используя подходящий метод search ( ). Вызов метода search ( ) является самой важной строкой кода в нашем примере со словарем:

queryMan. lang::search(word, lang::options)

Обратите внимание, что пространство имен (режим программы) определяет не только тип выполняемого поиска (поведение), но и тип вариантов, используемых для этого поиска (данные). Когда переменной lang присвоено пространство имен j арапе se, вызывается метод j арапе se: : search ( ), в который передается объект JapaneseSearchOptions. Когда переменной lang присвоено пространство имен english, вызывается метод english: : search ( ), в который передается объект EnglishSearchOptions.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.104
  • 25.10.2011">Прозрачные батарейки – скорое будущее
  • 17.03.2011">Руководство по actionscript. часть 2, стр. 155
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 092
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.77
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.98
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 142
  • 06.07.2011">Acer выпустила нетбук с Android
  • 23.08.2011">Приложение для Iphone на Ipad
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 147
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.71
  • 17.03.2011">Руководство по actionscript. часть 2, стр. 145
  • 12.09.2014">Помост на декоративном водоеме
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.52
  • 06.09.2011">Фотография жива и будет жить
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...