Функции Язык программирования PHP

swf_addbuttonrecord

(PHP 4)

swf_addbuttonrecord - управляет размещением, видом и активной областью текущей кнопки.

Описание

void swf_addbuttonrecord (int states, int shapeid, int depth)

swf_addbuttonrecord() позволяет определять специфику использования кнопки. Первый параметр, states, определяет статусы, которые может иметь кнопка; это может быть одна из или все следующие константы: BSHitTest, BSDown, BSOver, BSUp. Второй параметр, shapeid, это обычно object id фигуры кнопки. Параметр depth это местоположение кнопки в текущем кадре.
Пример 1. Функция swf_addbuttonrecord()
swf_startButton 
($objid, TYPE_MENUBUTTON); swf_addButtonRecord (BSDown|BSOver, $buttonImageId, 
340); swf_onCondition (MenuEnter); swf_actionGetUrl ("http://www.designmultimedia.com", 
"_level1"); swf_onCondition (MenuExit); swf_actionGetUrl ("", "_level1"); swf_endButton 
();


Назад Оглавление Вперёд
swf_actionwaitforframe Вверх swf_addcolor

Производительность

Некоторые элементы, которые могут появляться в патэрнах, работают более эффективно, чем другие. Более эффективно использовать класс символов, такой как [aeiou], нежели набор альтернатив, такой как (a|e|i|o|u). В целом, более простая конструкция является более эффективной. Книга Jeffrey Friedl'а содержит большую дискуссию об оптимизации регулярных выражений для повышения производительности.

Если патэрн начинается с .* и установлена опция PCRE_DOTALL, патэрн неявно заякоривается PCRE, поскольку он может совпасть только в начале строки-субъекта. Однако, если PCRE_DOTALL не установлена, PCRE не может выполнить эту оптимизацию, поскольку метасимвол . не совпадает тогда с символом новой строки/newline, и, если строку-субъект содержит newlines, патэрн может совпасть с символом, идущим непосредственно после одного из символов новой строки, вместо того чтобы совпадать только в самом начале. Например, патэрн

(.*) second

совпадает в субъекте "first\nand second" (где \n это символ новой строки) с первой захваченной подстрокой "and". Для этого PCRE пытается совпадать в начале после каждого символа новой строки в субъекте.

Если вы используете такой патэрн со строками-субъектами, которые не содержат newlines, наилучшая производительность будет достигнута установкой PCRE_DOTALL, или если начать патэрн с ^.* для явного указания заякоривания. Это удержит PCRE от необходимости сканировать субъект в поисках newline для рестарта с него.

Избегайте создания патэрнов, которые содержат бесконечные повторения. Они могут занять много времени, если применить их к строке, которая не содержит совпадений. Рассмотрим фрагмент патэрна

(a+)*