Функции ming для flash


Php ming: Как загрузить и получить доступ к активам из созданного ming swf в Flash/Flex?

Я использую Ming для создания библиотеки swf, используя первый пример кода ниже. Как получить доступ к встроенному png из приложения Flex? Здесь код php/ming:

И вот мое изгибное эссе:

Я не уверен, что png экспортируется правильно. Тестирование Library.swf с кодом SwfUtils (swfutils.riaforge.org) вообще не отображает экспортированные классы. Или что-то еще не так?

Ну, у меня такая же проблема Я создаю библиотеку с ming и пытаюсь получить к ней доступ из flex и не работает.

Я использовал это только потому, что мне нужно каким-то образом использовать определенный URL-адрес с помощью класса Loader для извлечения объекта класса, который я могу использовать для установки backgroundImage для Canvas, например.

Но я думаю, что swf, экспортированный ming my, имеет более низкую версию, чем скомпилированный swf, и он не может распознать имя встроенного класса, к сожалению.

Функции ming для flash

Ming — C-библиотека для создания файлов Adobe Flash (.swf). Может применяться в качестве PHP-модуля, позволяя динамически («на лету») создавать Flash-анимацию. Помимо PHP, библиотека может использоваться в языках программирования С++, Perl, Python, Ruby.

Корневая библиотека Ming распространяется на условиях GNU Lesser General Public License, а инструмент для командной строки по созданию .swf — на основании GNU General Public License, что делает Ming свободным ПО. [1]

LIX. Ming functions for Flash

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ . Поведение этого расширения, включая имена его функций и относящуюся к нему документацию может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF («Flash») format movies. Ming supports almost all of Flash 4’s features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs («shape tweens»), text, buttons, actions, sprites («movie clips»), streaming mp3, and color transforms —the only thing that’s missing is sound events.

Note that all values specifying length, distance, size, etc. are in «twips», twenty units per pixel. That’s pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming was added in PHP 4.0.5.

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: http://ming.sourceforge.net/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/ , and copy ming.h into /usr/include/ . Edit the PREFIX= line in the Makefile to change the installation directory.

Пример 1. built into php (unix)

/ext/ming
cp php_ext/*

./buildconf
./configure —with-ming

Внимание
Build and install php as usual, restart web server if necessary.

Now either just add extension=php_ming.so to your php.ini file, or put dl(‘php_ming.so’); at the head of all of your Ming scripts.

Данное расширение не определяет никакие директивы конфигурации в php.ini .


Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Технологии флэш-памяти

Современному человеку нравится быть мобильным и иметь при себе различные высокотехнологичные гаджеты (англ. gadget — устройство), облегчающие жизнь, да что там скрывать, делающие ее более насыщенной и интересной. И появились-то они всего за 10-15 лет! Миниатюрные, легкие, удобные, цифровые… Всего этого гаджеты достигли благодаря новым микропроцессорным технологиям, но все же больший вклад был сделан одной замечательной технологией хранения данных, о которой сегодня мы и будем говорить. Итак, флэш-память.

Бытует мнение, что название FLASH применительно к типу памяти переводится как «вспышка». На самом деле это не совсем так. Одна из версий его появления говорит о том, что впервые в 1989-90 году компания Toshiba употребила слово Flash в контексте «быстрый, мгновенный» при описании своих новых микросхем. Вообще, изобретателем считается Intel, представившая в 1988 году флэш-память с архитектурой NOR. Годом позже Toshiba разработала архитектуру NAND, которая и сегодня используется наряду с той же NOR в микросхемах флэш. Собственно, сейчас можно сказать, что это два различных вида памяти, имеющие в чем-то схожую технологию производства. В этой статье мы попытаемся понять их устройство, принцип работы, а также рассмотрим различные варианты практического использования.

Поскольку память с такой организацией считается первой представительницей семейства Flash, с нее и начнем. Схема логического элемента, собственно давшего ей название (NOR — Not OR — в булевой математике обозначает отрицание «ИЛИ»), приведена на рисунке.

С помощью нее осуществляется преобразование входных напряжений в выходные, соответствующие «0» и «1». Они необходимы, потому что для чтения/записи данных в ячейке памяти используются различные напряжения. Схема ячейки приведена на рисунке ниже.

Она характерна для большинства флэш-чипов и представляет из себя транзистор с двумя изолированными затворами: управляющим (control) и плавающим (floating). Важной особенностью последнего является способность удерживать электроны, то есть заряд. Также в ячейке имеются так называемые «сток» и «исток». При программировании между ними, вследствие воздействия положительного поля на управляющем затворе, создается канал — поток электронов. Некоторые из электронов, благодаря наличию большей энергии, преодолевают слой изолятора и попадают на плавающий затвор. На нем они могут храниться в течение нескольких лет. Определенный диапазон количества электронов (заряда) на плавающем затворе соответствует логической единице, а все, что больше его, — нулю. При чтении эти состояния распознаются путем измерения порогового напряжения транзистора. Для стирания информации на управляющий затвор подается высокое отрицательное напряжение, и электроны с плавающего затвора переходят (туннелируют) на исток. В технологиях различных производителей этот принцип работы может отличаться по способу подачи тока и чтению данных из ячейки. Хочу также обратить ваше внимание на то, что в структуре флэш-памяти для хранения 1 бита информации задействуется только один элемент (транзистор), в то время как в энергозависимых типах памяти для этого требуется несколько транзисторов и конденсатор. Это позволяет существенно уменьшить размеры выпускаемых микросхем, упростить технологический процесс, а, следовательно, и снизить себестоимость. Но и один бит далеко не предел: Intel уже выпускает память StrataFlash, каждая ячейка которой может хранить по 2 бита информации. Кроме того, существуют пробные образцы, с 4-х и даже 9-битными ячейками! В такой памяти используются технология многоуровневых ячеек. Они имеют обычную структуру, а отличие заключается в том, что заряд их делится на несколько уровней, каждому из которых в соответствие ставится определенная комбинация бит. Теоретически прочитать/записать можно и более 4-х бит, однако, на практике возникают проблемы с устранением шумов и с постепенной утечкой электронов при продолжительном хранении. Вообще, у существующих сегодня микросхем памяти для ячеек характерно время хранения информации, измеряемое годами и число циклов чтения/записи — от 100 тысяч до нескольких миллионов. Из недостатков, в частности, у флэш-памяти с архитектурой NOR стоит отметить плохую масштабируемость: нельзя уменьшать площадь чипов путем уменьшения размеров транзисторов. Эта ситуация связана со способом организации матрицы ячеек: в NOR архитектуре к каждому транзистору надо подвести индивидуальный контакт. Гораздо лучше в этом плане обстоят дела у флэш-памяти с архитектурой NAND.

NAND — Not AND — в той же булевой математике обозначает отрицание «И». Отличается такая память от предыдущей разве что логической схемой.

Устройство и принцип работы ячеек у нее такой же, как и у NOR. Хотя, кроме логики, все-таки есть еще одно важное отличие — архитектура размещения ячеек и их контактов. В отличие от вышеописанного случая, здесь имеется контактная матрица, в пересечениях строк и столбцов которой располагаются транзисторы. Это сравнимо с пассивной матрицей в дисплеях :) (а NOR — с активной TFT). В случае с памятью такая организация несколько лучше — площадь микросхемы можно значительно уменьшить за счет размеров ячеек. Недостатки (куда уж без них) заключаются в более низкой по сравнению с NOR скорости работы в операциях побайтового произвольного доступа.

Существуют еще и такие архитектуры как: DiNOR (Mitsubishi), superAND (Hitachi) и пр. Принципиально нового ничего они не представляют, а лишь комбинируют лучшие свойства NAND и NOR.

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

Где нужна память…

Сфера применения какого-либо типа флэш-памяти зависит в первую очередь от его скоростных показателей и надежности хранения информации. Адресное пространство NOR-памяти позволяет работать с отдельными байтами или словами (2 байта). В NAND ячейки группируются в небольшие блоки (по аналогии с кластером жесткого диска). Из этого следует, что при последовательном чтении и записи преимущество по скорости будет у NAND. Однако с другой стороны NAND значительно проигрывает в операциях с произвольным доступом и не позволяет напрямую работать с байтами информации. К примеру, для изменения одного байта требуется:

  1. считать в буфер блок информации, в котором он находится
  2. в буфере изменить нужный байт
  3. записать блок с измененным байтом обратно

Если еще ко времени выполнения перечисленных операций прибавить задержки на выборку блока и на доступ, то получим отнюдь неконкурентоспособные с NOR показатели (отмечу, что именно для случая побайтовой записи). Другое дело последовательная запись/чтение — здесь NAND наоборот показывает значительно более высокие скоростные характеристики. Поэтому, а также из-за возможностей увеличения объема памяти без увеличения размеров микросхемы, NAND-флэш нашел применение в качестве хранителя больших объемов информации и для ее переноса. Наиболее распространенные сейчас устройства, основанные на этом типе памяти, это флэшдрайвы и карты памяти. Что касается NOR-флэша, то чипы с такой организацией используются в качестве хранителей программного кода (BIOS, RAM карманных компьютеров, мобилок и т. п.), иногда реализовываются в виде интегрированных решений (ОЗУ, ПЗУ и процессор на одной мини-плате, а то и в одном чипе). Удачный пример такого использования — проект Gumstix: одноплатный компьютер размером с пластинку жвачки. Именно NOR-чипы обеспечивают требуемый для таких случаев уровень надежности хранения информации и более гибкие возможности по работе с ней. Объем NOR-флэш обычно измеряется единицами мегабайт и редко переваливает за десятки.

И будет флэш…

Безусловно, флэш — перспективная технология. Однако, несмотря на высокие темпы роста объемов производства, устройства хранения данных, основанные на ней, еще достаточно дороги, чтобы конкурировать с жесткими дисками для настольных систем или ноутбуков. В основном, сейчас сфера господства флэш-памяти ограничивается мобильными устройствами. Как вы понимаете, этот сегмент информационных технологий не так уж и мал. Кроме того, со слов производителей, на нем экспансия флэш не остановится. Итак, какие же основные тенденции развития имеют место в этой области.

Во-первых, как уже упоминалось выше, большое внимание уделяется интегрированным решениям. Причем проекты вроде Gumstix лишь промежуточные этапы на пути к реализации всех функций в одной микросхеме.

Пока что, так называемые on-chip (single-chip) системы представляют собой комбинации в одном чипе флэш-памяти с контроллером, процессором, SDRAM или же со специальным ПО. Так, например, Intel StrataFlash в сочетании с ПО Persistent Storage Manager (PSM) дает возможность использовать объем памяти одновременно как для хранения данных, так и для выполнения программного кода. PSM по сути дела является файловой системой, поддерживающейся ОС Windows CE 2.1 и выше. Все это направлено на снижение количества компонентов и уменьшение габаритов мобильных устройств с увеличением их функциональности и производительности. Не менее интересна и актуальна разработка компании Renesas — флэш-память типа superAND с встроенными функциями управления. До этого момента они реализовывались отдельно в контроллере, а теперь интегрированы прямо в чип. Это функции контроля бэд-секторов, коррекции ошибок (ECC — error check and correct), равномерности износа ячеек (wear leveling). Поскольку в тех или иных вариациях они присутствуют в большинстве других брендовых прошивок внешних контроллеров, давайте вкратце их рассмотрим. Начнем с бэд-секторов. Да, во флэш-памяти они тоже встречаются: уже с конвейера сходят чипы, имеющие в среднем до 2% нерабочих ячеек — это обычная технологическая норма. Но со временем их количество может увеличиваться (окружающую среду в этом винить особо не стоит — электромагнитное, физическое (тряска и т. п.) влияние флэш-чипу не страшно). Поэтому, как и в жестких дисках, во флэш-памяти предусмотрен резервный объем. Если появляется плохой сектор, функция контроля подменяет его адрес в таблице размещения файлов адресом сектора из резервной области.

Собственно, выявлением бэдов занимается алгоритм ECC — он сравнивает записываемую информацию с реально записанной. Также в связи с ограниченным ресурсом ячеек (порядка нескольких миллионов циклов чтения/записи для каждой) важно наличие функции учета равномерности износа. Приведу такой редкий, но встречающийся случай: брелок с 32 Мбайт, из которых 30 Мбайт заняты, а на свободное место постоянно что-то записывается и удаляется. Получается, что одни ячейки простаивают, а другие интенсивно исчерпывают свой ресурс. Чтобы такого не было, в фирменных устройствах свободное пространство условно разбивается на участки, для каждого из которых осуществляется контроль и учет количества операций записи.

Еще более сложные конфигурации класса «все-в-одном» сейчас широко представлены такими компаниями как, например, Intel, Samsung, Hitachi и др. Их изделия представляют собой многофункциональные устройства, реализованные в одной лишь микросхеме (стандартно в ней имеется процессор, флэш-память и SDRAM). Ориентированы они на применение в мобильных устройствах, где важна высокая производительность при минимальных размерах и низком энергопотреблении. К таким относятся: PDA, смартфоны, телефоны для сетей 3G. Приведу пример подобных разработок — чип от Samsung, объединяющий в себе ARM-процессор (203 МГц), 256 Мбайт NAND памяти и 256 SDRAM. Он совместим с распространенными ОС: Windows CE, Palm OS, Symbian, Linux и имеет поддержку USB. Таким образом на его основе возможно создание многофункциональных мобильных устройств с низким энергопотреблением, способных работать с видео, звуком, голосом и прочими ресурсоемкими приложениями.

Другим направлением совершенствования флэш является уменьшение энергопотребления и размеров с одновременным увеличением объема и быстродействия памяти. В большей степени это касается микросхем с NOR архитектурой, поскольку с развитием мобильных компьютеров, поддерживающих работу в беспроводных сетях, именно NOR-флэш, благодаря небольшим размерам и малому энергопотреблению, станет универсальным решением для хранения и выполнения программного кода. В скором времени в серийное производство будут запущены 512 Мбит чипы NOR той же Renesas. Напряжение питания их составит 3,3 В (напомню, хранить информацию они могут и без подачи тока), а скорость в операциях записи — 4 Мбайт/сек. В то же время Intel уже представляет свою разработку StrataFlash Wireless Memory System (LV18/LV30) — универсальную систему флэш-памяти для беспроводных технологий. Объем ее памяти может достигать 1 Гбит, а рабочее напряжение равно 1.8 В. Технология изготовления чипов — 0,13 нм, в планах переход на 0,09 нм техпроцесс. Среди инноваций данной компании также стоит отметить организацию пакетного режима работы с NOR-памятью. Он позволяет считывать информацию не по одному байту, а блоками — по 16 байт: с использованием 66 МГц шины данных скорость обмена информацией с процессором достигает 92 Мбит/с!

Что ж, как видите, технология развивается стремительно. Вполне возможно, что к моменту выхода статьи появится еще что-нибудь новенькое. Так что, если что — не взыщите :) Надеюсь, материал был вам интересен.

Ming (flash)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов


  • Предопределенные константы
  • Примеры
    • SWFAction Examples
    • SWFSPrite basic examples
  • Ming Функции
    • ming_keypress — Returns the action flag for keyPress(char)
    • ming_setcubicthreshold — Set cubic threshold
    • ming_setscale — Set the global scaling factor.
    • ming_setswfcompression — Sets the SWF output compression
    • ming_useconstants — Use constant pool
    • ming_useswfversion — Sets the SWF version
  • SWFAction — The SWFAction class
    • SWFAction::__construct — Creates a new SWFAction
  • SWFBitmap — The SWFBitmap class
    • SWFBitmap::__construct — Loads Bitmap object
    • SWFBitmap::getHeight — Returns the bitmap’s height
    • SWFBitmap::getWidth — Returns the bitmap’s width
  • SWFButton — The SWFButton class
    • SWFButton::addAction — Adds an action
    • SWFButton::addASound — Associates a sound with a button transition
    • SWFButton::addShape — Adds a shape to a button
    • SWFButton::__construct — Creates a new Button
    • SWFButton::setAction — Sets the action
    • SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
    • SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)
    • SWFButton::setMenu — enable track as menu button behaviour
    • SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)
    • SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)
  • SWFDisplayItem — The SWFDisplayItem class
    • SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance
    • SWFDisplayItem::addColor — Adds the given color to this item’s color transform
    • SWFDisplayItem::endMask — Another way of defining a MASK layer
    • SWFDisplayItem::getRot — Описание
    • SWFDisplayItem::getX — Описание
    • SWFDisplayItem::getXScale — Описание
    • SWFDisplayItem::getXSkew — Описание
    • SWFDisplayItem::getY — Описание
    • SWFDisplayItem::getYScale — Описание
    • SWFDisplayItem::getYSkew — Описание
    • SWFDisplayItem::move — Moves object in relative coordinates
    • SWFDisplayItem::moveTo — Moves object in global coordinates
    • SWFDisplayItem::multColor — Multiplies the item’s color transform
    • SWFDisplayItem::remove — Removes the object from the movie
    • SWFDisplayItem::rotate — Rotates in relative coordinates
    • SWFDisplayItem::rotateTo — Rotates the object in global coordinates
    • SWFDisplayItem::scale — Scales the object in relative coordinates
    • SWFDisplayItem::scaleTo — Scales the object in global coordinates
    • SWFDisplayItem::setDepth — Sets z-order
    • SWFDisplayItem::setMaskLevel — Defines a MASK layer at level
    • SWFDisplayItem::setMatrix — Sets the item’s transform matrix
    • SWFDisplayItem::setName — Sets the object’s name
    • SWFDisplayItem::setRatio — Sets the object’s ratio
    • SWFDisplayItem::skewX — Sets the X-skew
    • SWFDisplayItem::skewXTo — Sets the X-skew
    • SWFDisplayItem::skewY — Sets the Y-skew
    • SWFDisplayItem::skewYTo — Sets the Y-skew
  • SWFFill — The SWFFill class
    • SWFFill::moveTo — Moves fill origin
    • SWFFill::rotateTo — Sets fill’s rotation
    • SWFFill::scaleTo — Sets fill’s scale
    • SWFFill::skewXTo — Sets fill x-skew
    • SWFFill::skewYTo — Sets fill y-skew
  • SWFFont — The SWFFont class
    • SWFFont::__construct — Loads a font definition
    • SWFFont::getAscent — Returns the ascent of the font, or 0 if not available
    • SWFFont::getDescent — Returns the descent of the font, or 0 if not available
    • SWFFont::getLeading — Returns the leading of the font, or 0 if not available
    • SWFFont::getShape — Returns the glyph shape of a char as a text string
    • SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height
    • SWFFont::getWidth — Returns the string’s width
  • SWFFontChar — The SWFFontChar class
    • SWFFontChar::addChars — Adds characters to a font for exporting font
    • SWFFontChar::addUTF8Chars — Adds characters to a font for exporting font
  • SWFGradient — The SWFGradient class
    • SWFGradient::addEntry — Adds an entry to the gradient list
    • SWFGradient::__construct — Creates a gradient object
  • SWFMorph — The SWFMorph class
    • SWFMorph::__construct — Creates a new SWFMorph object
    • SWFMorph::getShape1 — Gets a handle to the starting shape
    • SWFMorph::getShape2 — Gets a handle to the ending shape

  • SWFMovie — The SWFMovie class
    • SWFMovie::add — Adds any type of data to a movie
    • SWFMovie::addExport — Описание
    • SWFMovie::addFont — Описание
    • SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie
    • SWFMovie::importChar — Описание
    • SWFMovie::importFont — Описание
    • SWFMovie::labelFrame — Labels a frame
    • SWFMovie::nextFrame — Moves to the next frame of the animation
    • SWFMovie::output — Dumps your lovingly prepared movie out
    • SWFMovie::remove — Removes the object instance from the display list
    • SWFMovie::save — Saves the SWF movie in a file
    • SWFMovie::saveToFile — Описание
    • SWFMovie::setbackground — Sets the background color
    • SWFMovie::setDimension — Sets the movie’s width and height
    • SWFMovie::setFrames — Sets the total number of frames in the animation
    • SWFMovie::setRate — Sets the animation’s frame rate
    • SWFMovie::startSound — Описание
    • SWFMovie::stopSound — Описание
    • SWFMovie::streamMP3 — Streams a MP3 file
    • SWFMovie::writeExports — Описание
  • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip
  • SWFShape — The SWFShape class
    • SWFShape::addFill — Adds a solid fill to the shape
    • SWFShape::__construct — Creates a new shape object
    • SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o’clock
    • SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
    • SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCurve — Draws a curve (relative)
    • SWFShape::drawCurveTo — Draws a curve
    • SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
    • SWFShape::drawLine — Draws a line (relative)
    • SWFShape::drawLineTo — Draws a line
    • SWFShape::movePen — Moves the shape’s pen (relative)
    • SWFShape::movePenTo — Moves the shape’s pen
    • SWFShape::setLeftFill — Sets left rasterizing color
    • SWFShape::setLine — Sets the shape’s line style
    • SWFShape::setRightFill — Sets right rasterizing color
  • SWFSound — The SWFSound class
    • SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла
  • SWFSoundInstance — The SWFSoundInstance class
    • SWFSoundInstance::loopCount — Описание
    • SWFSoundInstance::loopInPoint — Описание
    • SWFSoundInstance::loopOutPoint — Описание
    • SWFSoundInstance::noMultiple — Описание
  • SWFSprite — The SWFSprite class
    • SWFSprite::add — Adds an object to a sprite
    • SWFSprite::__construct — Creates a movie clip (a sprite)
    • SWFSprite::labelFrame — Labels frame
    • SWFSprite::nextFrame — Moves to the next frame of the animation
    • SWFSprite::remove — Removes an object to a sprite
    • SWFSprite::setFrames — Sets the total number of frames in the animation
    • SWFSprite::startSound — Описание
    • SWFSprite::stopSound — Описание
  • SWFText — The SWFText class
    • SWFText::addString — Draws a string
    • SWFText::addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color
    • SWFText::__construct — Creates a new SWFText object
    • SWFText::getAscent — Returns the ascent of the current font at its current size, or 0 if not available
    • SWFText::getDescent — Returns the descent of the current font at its current size, or 0 if not available
    • SWFText::getLeading — Returns the leading of the current font at its current size, or 0 if not available
    • SWFText::getUTF8Width — calculates the width of the given string in this text objects current font and size
    • SWFText::getWidth — Computes string’s width
    • SWFText::moveTo — Moves the pen
    • SWFText::setColor — Sets the current text color
    • SWFText::setFont — Sets the current font
    • SWFText::setHeight — Sets the current font height
    • SWFText::setSpacing — Sets the current font spacing
  • SWFTextField — The SWFTextField class
    • SWFTextField::addChars — adds characters to a font that will be available within a textfield
    • SWFTextField::addString — Concatenates the given string to the text field
    • SWFTextField::align — Sets the text field alignment
    • SWFTextField::__construct — Creates a text field object
    • SWFTextField::setBounds — Sets the text field width and height
    • SWFTextField::setColor — Sets the color of the text field
    • SWFTextField::setFont — Sets the text field font
    • SWFTextField::setHeight — Sets the font height of this text field font
    • SWFTextField::setIndentation — Sets the indentation of the first line
    • SWFTextField::setLeftMargin — Sets the left margin width of the text field
    • SWFTextField::setLineSpacing — Sets the line spacing of the text field
    • SWFTextField::setMargins — Sets the margins width of the text field
    • SWFTextField::setName — Sets the variable name
    • SWFTextField::setPadding — Sets the padding of this textfield
    • SWFTextField::setRightMargin — Sets the right margin width of the text field
  • SWFVideoStream — The SWFVideoStream class
    • SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream
    • SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле
    • SWFVideoStream::setDimension — Устанавливает размер видео

STM32 — правильно используем встроенный flash

Предисловие

Давно ни для кого не секрет, что STMicroelectronics производит замечательные 32-битные ARM микроконтроллеры STM32. В последнее время они набирают всё большую популярность, и на то есть веские причины, которые в рамках этой статьи я повторять не намерен. Кому интересно — раз, два и три.

Однако у резкого повышения популярности есть и неприятные минусы — довольно часто авторы статей повторяют одни и те-же ошибки. А если ещё и в официальном документе производителя нужный момент описан поверхностно — то тут черт ногу сломит, пока найдёт решение проблемы.

Именно о таком моменте я и хочу рассказать. А именно — как правильно использовать возможность записи во встроенный flash нашего МК. Добро пожаловать под кат.


Курим маны, читаем статьи

Подавляющее большинство статей (а если точнее — вообще все, которые я видел) предлагают реализацию алгоритма, рекомендуемого в официальном мануале по программированию флеша. Вот такого:

Кодим, компилим, проверяем — всё работает. Хорошо работает. Ровно до тех пор, пока вы не включите оптимизацию. Я использую gcc и проверял с ключами -O1 и -O2. Без оптимизации — работает. С оптимизацией — не работает. Нервно курим, пьём кофе, и тратим день-два на поиск проблемы и размышления о бренности бытия.

Как правильно

Уж не знаю, почему производитель советует использовать неправильно работающий алгоритм. Возможно где-то это объяснено, но за два дня у меня так и не получилось ничего найти. Решение-же оказалось довольно простым — в регистре FLASH->SR для контроля окончания операции надо использовать не бит BSY (искренне не понимаю, почему даже ST рекомендует использовать его), а бит EOP, выставляющийся при окончании текущей операции стирания/записи.

Причина проста — по тем или иным причинам на момент проверки бит BSY может быть ещё не выставлен. Однако бит EOP выставляется тогда, и только тогда, когда операция завершена. Сбрасывается этот бит вручную, записью в него единицы. Кодим, проверяем, радуемся жизни.

Сырцы

Для полноты картины необходимо найти и почитать другие статьи на эту тему (ссылка на одну из них приведена выше). Здесь-же прилагаю исходники с кратеньким описанием.

Разблокировка работы с flash — эти две строчки необходимо вставить в функцию инициализации МК:

Стирание страницы flash — перед записью необходимо стереть данные по нужным адресам, это особенность флеша:

Вот такие пироги. Приятного всем кодинга и поменьше багов.

Примеры формул с использованием функций МИН и МИНА в Excel

Функция МИН используется для нахождения минимального числа в исследуемом диапазоне и возвращает соответствующее число.

Функция МИНА предназначена для поиска минимального значения в исследуемом диапазоне данных и возвращает соответствующий результат.

Примеры использования функций МИН и МИНА в Excel

Пример 1. В таблице Excel содержатся данные о дате рождения офисных работников. Определить минимальный возраст работника.

Для расчетов используем формулу массива (корректный результат только при нажатии комбинации Ctrl+Shift+Enter):

Единственным аргументом является выражение ГОД(СЕГОДНЯ())-ГОД(B3:B10), возвращающее массив числовых значений, равных разнице текущего года и года рождения каждого сотрудника. В результате вычислений получим:

Формула автоматически вычислила, что самому младшему сотруднику 27 лет.

Как вычислить сумму минимальных неотрицательных значений в Excel

Пример 2. В таблице Excel содержится несколько столбцов числовых данных. Найти суммарное значение минимальных неотрицательных значений, содержащихся в этих столбцах. Дополнительно найти наименьшее число из имеющихся в таблице.

Для определения минимальных неотрицательных чисел используем формулу массива:

Единственным аргументом является функция ЕСЛИ, выполняющая проверку массива данных на вхождения положительных чисел. Если условие выполняется, функция МИН принимает в качестве аргумента массив, содержащий только положительные числа. Аналогично найдем минимальные значения для остальных столбцов. Полученный результат (Ctrl+Shift+Enter):

Найдем наименьшее число в таблице с помощью формулы:


В качестве аргументов функции являются значения, возвращаемые каждой из функций МИН для указанного вектора данных. Использовать как формулу массива. Результат (Ctrl+Shift+Enter):

Поиск нескольких наименьших значений при условиях в Excel

Пример 3. Некоторая компания ранее работала с одним поставщиком продукции. Однако стало известно, что некоторые другие поставщики предлагают более приемлемые цены. В таблице Excel содержатся коды товаров и скидки, предлагаемые другими поставщиками. Если скидки нет, отображено логическое значение ЛОЖЬ, если число положительное – товар стоит дороже. Найти наибольшую скидку для одних и тех же товаров только по разным ценам разных поставщиков.

Формула для расчета (формула массива):

  1. Функция ЕСЛИ проверяет условие МИНА(ЕСЛИ(A3:A15=D1;B3:B15;»»))>=0, где МИНА возвращает минимальное значение скидки для товара, код которого указан в ячейке D1.
  2. Функция МИНА учитывает логические значения. Возможен случай, когда для какого-либо товара скидки не существует (все значения – ЛОЖЬ), и будет возвращен результат 0 (нуль). В этом случае будет возвращена текстовая строка «Скидки нет». Аналогичное событие произойдет, если все скидки – только положительные числа.
  3. Если условие не выполняется, будет возвращена максимальная скидка (наибольшее отрицательное значение) для указанного кода товара.

Вычислим наибольшие скидки для остальных товаров. В результате получим (Ctrl+Shift+Enter):

Особенности использования функций МИН и МИНА в Excel

Функция МИН имеет следующую синтаксическую запись:

=МИН( число1 ;[число2]…)

  • число1 – обязательный аргумент, характеризующий первое число из диапазона, в котором требуется найти минимальное значение;
  • [число2]… — второй и последующие необязательные аргументы, характеризующие второе и последующие числа из исследуемого диапазона.

Функция МИНА имеет следующую синтаксическую запись:

=МИНА( значение1; [значение2]…)

  • значение1 – обязательный аргумент, характеризующий первое вхождение в диапазон, в котором требуется найти минимальное значение;
  • [значение2]… — второй и последующие необязательные аргументы, характеризующие второе и последующие вхождения исследуемого диапазона данных.
  1. Разница в синтаксисе подчеркивает смысловое различие двух функций: МИН работает только с числовыми значениями, МИНА дополнительно учитывает логический тип данных.
  2. Если в качестве аргументов функций МИН и МИНА были переданы только текстовые строки, не являющиеся текстовыми представлениями чисел, функции вернут значение 0.
  3. Функция МИН, принимающая в качестве аргумента ссылку на диапазон данных, игнорирует не только логические ИСТИНА и ЛОЖЬ, а также текстовые строки и пустые ячейки.
  4. Если в качестве аргумента МИН или МИНА является формула, возвращающая ошибку, результатом выполнения данных функций также будет являться код ошибки. Рекомендуется выполнять проверку данных с помощью функции ЕСЛИОШИБКА.
  5. Функции МИН и МИНА не имеют логических функций-аналогов, как это реализовано, например, у функции СЧЁТ (СЧЁТЕСЛИ), поэтому проверку данных следует выполнять при выполнении МИН и МИНА, передавая им в качестве аргумента логические функции (ЕСЛИ, ЕСЛИОШИБКА и прочие).
  1. Функция МИНА возвращает значение 0 (нуль), если в диапазоне, на который была передана ссылка в качестве аргумента, содержатся текстовые значения или текстовые представления чисел.
  2. Обе функции используются для нахождения минимальных величин в переданном в качестве аргумента диапазоне значений, однако между ними есть несколько различий:
  • Если одним из аргументов функции МИН является логическое значение (ИСТИНА или ЛОЖЬ, которые могут быть преобразованы к числовым значениям 1 и 0 соответственно), это значение будет учитываться в расчетах. Например, функция =МИН(100;ИСТИНА;ЛОЖЬ;10) вернет значение 0.
  • Если в качестве аргумента функции МИН была передана ссылка на диапазон, содержащий данные логического типа, последние учитываться не будут. Например, функция =МИН(A1:A4) вернет значение 10, если диапазон ячеек A1:A4 содержит следующие данные: 100, ИСТИНА, ЛОЖЬ и 10 соответственно.
  • Чтобы при расчетах учитывались также данные логического типа, следует использовать функцию МИНА. Например, запись =МИНА(A1:A4) вернет значение 0 (логическое ЛОЖЬ эквивалентно числовому 0), если ячейки A1:A4 содержат данные как в предыдущем пункте.


Функции ming для flash

Ming — C-библиотека для создания файлов Adobe Flash (.swf). Может применяться в качестве PHP-модуля, позволяя динамически («на лету») создавать Flash-анимацию. Помимо PHP, библиотека может использоваться в языках программирования С++, Perl, Python, Ruby.

Корневая библиотека Ming распространяется на условиях GNU Lesser General Public License, а инструмент для командной строки по созданию .swf — на основании GNU General Public License, что делает Ming свободным ПО. [1]

Примечания

  1. ↑FAQ по Ming . Архивировано 15 августа 2012 года.

Ссылки

  • libming.org — официальный сайт Ming (англ.)
  • Документация к библиотеке Ming (англ.)
  • Мануал по Ming (англ.)
  • Функции Ming для Flash (рус.)

Cheung Kong Group

Cheung Kong Group (長江實業 (集團) 有限公司) — один из ведущих конгломератов Гонконга, принадлежащий миллиардеру Ли Кашину и его старшему сыну Виктору Ли. Штаб-квартира группы расположена в небоскрёбе Cheung Kong Center (округ Сентрал).

В 2015 году компании Cheung Kong Group и Hutchison Whampoa слились в единую группу CK Hutchison Holdings.

Flash Gordon — девятый студийный альбом рок-группы «Queen», выпущенный 8 декабря 1980 года, саундтрек к англо-американскому фильму «Флэш Гордон». Первый альбом, в котором были применены синтезаторы, ранее принципиально не использовавшиеся в записях «Queen». Как альбом, проект не достиг больших высот, остановившись на десятой строчке британского хит-парада и на 23 строчке в США.

Motorola A1200 — Linux-аппарат с сенсорным экраном, который продавался на азиатском рынке. При продаже в Гонконге модель была переименована в MING по названию китайского иероглифа, который состоит из знаков, обозначающих солнце и луну, то есть первоначально телефон был создан только для китайского рынка. Но впоследствии аппарат по названием A1200i стал продаваться и в Бразилии. При этом «i» означает международный (international). В аппарате использована новая технология дизайна — флип (крышка), который выполнен из прозрачного пластика. Под ним хорошо виден экран.

Был представлен на рынке в декабре 2005 года.

Азиатско-тихоокеанский кинофестиваль (англ. Asia-Pacific Film Festival, APFF, ранее [уточнить]) — ежегодный кинофестиваль, проходящий в странах Азиатско-тихоокеанского региона с 1954 года. Место проведения выбирается Советом директоров Федерации кинопродюсеров.

Юймин Бэй (в русской литературе также Йо Минг Пей кит. трад. 貝聿銘, упр. 贝聿铭, пиньинь: Bèi Yùmíng, англ. Ieoh Ming Pei; 26 апреля 1917, Гуанчжоу — 16 мая 2020, Нью-Йорк) — американский архитектор китайского происхождения, который стал одним из пяти первых лауреатов Притцкеровской премии, членом Американского института архитекторов, основателем Королевского института британских архитекторов.

Первой крупной постройкой Пея, принёсшей ему признание, стала Лаборатория Меса в Национальном центре атмосферных исследований в Колорадо, которая была спроектирована в 1961 году и построена к 1967. Благодаря успеху этого и нескольких следующих проектов он был выбран в качестве главного архитектора для библиотеки Джона Ф. Кеннеди в Массачусетсе. В то же время Пей проектировал Даллас Сити-Холл и восточное здание Национальной галереи искусства. В 1975 году впервые за долгое время вернулся в Китай, чтобы спроектировать отель Fragrant Hill в парке Сяншань, а следующим заказом в родной стране в 1982 году стала башня Банка Китая. В начале 1980 годов Пей оказался в центре дискуссии относительно его проекта парижской стеклянной пирамиды в Лувре.

Чжу Ицзюнь, девиз правления Ваньли (кит. трад. 萬曆, упр. 万历, пиньинь: Wànlì, палл.: Ваньли, 4 сентября 1563 — 18 августа 1620) — тринадцатый император Китая династии Мин c 1572 по 1620 годы, его правление было одним из самых долгих императорских правлений. Третий сын и преемник китайского императора Чжу Цзайхоу. Храмовое имя Шэньцзун (神宗, Shénzōng), посмертное имя Сянь-хуанди (顯皇帝).


Захоронен в Пекинском комплексе императорских гробниц. Во время культурной революции, хунвэйбины выволокли останки императора из гробницы, предали посмертному «осуждению» и сожгли.

Минг-На Вен (англ. Ming-Na Wen, Вэнь Минна (кит. 温明娜); род. 20 ноября 1963 года, остров Колоан, Макао, Португалия) — американская актриса.

Гробницы правителей империи Мин (Шисаньлин, кит. упр. 明十三陵, пиньинь: Ming shisan ling, «Тринадцать минских гробниц») — комплекс мавзолеев тринадцати императоров китайской империи Мин (XV—XVII вв.) (начиная с третьего императора, Чжу Ди). Комплекс расположен на склонах гор Тяньшоу в Чанпинском районе Пекина в 50 км к северу от центра города.

Этот мавзолейный комплекс — один из основных компонентов памятника Всемирного наследия «Гробницы императоров династий Мин и Цин», в который также включен мавзолей Сяолин первого минского императора Чжу Юаньчжана (вблизи его столицы, Нанкина), гробницы некоторых других минских деятелей, а также мавзолеи цинских императоров в Маньчжурии и под Пекином. Заметим, что второй минский император, Чжу Юньвэнь, мавзолея не имеет в связи с обстоятельствами его смещения третьим императором, Чжу Ди.Место для захоронения было выбрано императором Чжу Ди после того, как он перенёс столицу Китая из Нанкина в Пекин. Ему пришлось по душе то, что участок защищён от «губительных влияний севера» горной цепью. Расположение императорских могил также является классическим воплощением принципов фэншуя.

Тринадцать мавзолеев расположены на одном участке, отгороженном от посторонних глаз высокой стеной, и имеют общую «священную дорогу» (шэньдао), уставленную статуями реальных и мифических животных.В XX веке три гробницы были вскрыты и исследованы археологами, однако в 1989 г. археологические изыскания на территории комплекса были прекращены и с тех пор не возобновлялись.

Е́внух (др.-греч. εὐνοῦχος — «охраняющий ложе») — полностью или частично кастрированный (оскоплённый) мужчина. Термин применяется, как правило, в историческом контексте для обозначения оскоплённых в детстве слуг при гаремах восточных владетелей или вельмож.

В восточных монархиях большое значение придавалось чистоте династической крови, которая легитимировала притязания монарха на происхождение от богов и на верховную власть. Чтобы исключить даже гипотетическую возможность неверности, половозрелых мужчин в покои своих жён и наложниц монархи не допускали.

Придворное значение евнухов могло быть перенесено на их политический авторитет. Не имея возможности продолжить род и основать собственную династию, евнухи не рассматривались монархами в качестве политических конкурентов и служили послушными исполнителями царской воли, отчего часто пользовались доверием властителя и влиянием при дворе.

Для евнухов характерны высокий рост и пухлое телосложение. Собранные статистические данные позволяют предположить о большей (в пределах погрешности в районе 14—17 лет) продолжительности жизни евнухов по сравнению с мужчинами, имеющими сопоставимый социальный статус.

Великая Минская империя (кит. трад. 大明帝國, упр. 大明帝国, пиньинь: Dà Míng Dìguó, палл.: да мин диго) —

государство под властью династии Мин (кит. упр. 明朝, пиньинь: Míng Cháo, палл.: мин чао), правившей в Китае после отделения Китая от монгольской империи Юань с 1368 года по 1644 год. Несмотря на то, что минская столица Пекин пала в 1644 году в результате восстания Ли Цзычэна, часть страны оставалась под контролем лояльного к минской семье режима (Южная Мин) до 1662 года.

В империи Мин был построен флот и создана постоянная армия, общая численность которой достигала миллиона человек. Частный сектор земельных владений в результате продолжительных войн сократился до одной трети всей обрабатываемой площади, в противовес чему возрос государственный сектор. По сути, в империи победила надельная система, хотя её установление формально и не было объявлено. Была проведена жёсткая централизация управления, предпринимались попытки регламентировать все сферы жизни граждан. Несмотря на успешное правление первых двух императоров — Чжу Юаньчжана и его сына Чжу Ди — со временем в государственном аппарате империи появились признаки разложения, и к началу XVII века он уже был насквозь пропитан коррупцией, императоры мало интересовались политикой, и вся высшая власть была сосредоточена в руках их многочисленного окружения (родственников, евнухов и придворных). Кризис затронул также аграрные отношения: после тотальной приватизации земли приближёнными императоров государственный сектор практически исчез. Минский Китай начал проводить политику самоизоляции. В это время на северо-восточных окраинах Китая возникло молодое, но сильное государство маньчжуров под властью клана Нурхаци. Воспользовавшись крестьянским восстанием Ли Цзычэна, они захватили Пекин и присоединили Китай к маньчжурской империи Цин.

После падения столицы и смерти императора Чжу Юцзяня, покончившего жизнь самоубийством, властители оставшихся под контролем Мин Нанкина, Фуцзяня, Гуандуна, Шаньси и Юньнаня так и не смогли скоординировать свои действия и к 1662 году один за другим пали под натиском маньчжуров. Один из главнокомандующих Южной Мин, Чжэн Чэнгун, сознавая бесперспективность борьбы против маньчжуров на материке, решил оставить материк (сохранив за собой две базы — Сямэнь и Цзиньмэнь), изгнать голландцев с Тайваня и превратить этот остров в основную базу войны против завоевателей. Формально Тайвань стал считаться частью империи Мин, но после казни последнего законного минского императора Чжу Юлана Чжэн не хотел больше никого признавать в качестве монарха. Так возник редко встречающийся в мировой истории курьёз — «монархия без монарха»; вся реальная власть на острове принадлежала «главнокомандующему-усмирителю» Чжэн Чэнгуну, фактически основавшему новую династию. Чжэны правили Тайванем и воевали с маньчжурами под флагом империи Мин ещё двадцать лет.

«Карта Мао Куня» (англ. the Mao Kun Map, кит. 茅坤图) — принятое среди западных историков название единственной дошедшей до наших дней китайской карты Минской эпохи, показывавшей морские пути, использовавшиеся во времена плаваний Чжэн Хэ (1401—1433). В Китае часто именуется просто «навигационная карта Чжэн Хэ» (郑和航海图).

Коммуникатор (англ. Communicator) — это вымышленный прибор, используемый для голосового общения в вымышленной Вселенной «Звёздный путь». В «Оригинальном сериале» в эпизодах «Завтра — это вчера» и «День примирения», он использовался в качестве аварийного сигнального устройства-маяка, похожего на транспондер. Коммуникатор позволяет осуществлять прямые контакты между отдельными пользователями или через судовую систему связи.

Коммуникатор из вселенной «Звездный путь» превосходит технологические возможности современных мобильных телефонов, прототипом которых является. Это позволяет членам экипажа звездолёта связываться с кораблей на орбите, не полагаясь на искусственный спутник для ретрансляции сигнала. Коммуникаторы используют подпространственные передачи, которые не соответствуют нормальным законам физики в том, что сигналы могут обходить электромагнитные помехи, и позволяют почти мгновенно соединиться с абонентом на расстояниях, которые требовали бы большего времени для соединения.

В сериале «Звездный путь: оригинальный сериал» (ТОС), когда коммуникаторы ломались, терялись, были похищены или выходили из зоны досягаемости, то создавали сложные ситуации для героев. В таких случаях Коммуникатор подавал сигнал на транспортер для возвращения на корабль, таким образом заканчивая сюжет преждевременно.

«Минг Урик» (узб. Ming O’rik) — станция Ташкентского метрополитена. Конечная станция Юнусабадской линии. Следующая станция «Юнуса Раджаби».

Станция колонного типа с двумя подземными вестибюлями. Пущена в эксплуатацию 26 октября 2001 года в составе первого участка Юнусабадской линии.

Пересадка на станцию «Айбек» Узбекистанской линии.

Нанки́н (кит. 南京, пиньинь: Nánjīng, палл.: Наньцзин [Слушать ], буквально — «южная столица») — бывшая столица Китая, порт в низовьях реки Янцзы, место пребывания властей провинции Цзянсу.

Расположен в восточной части страны, в 260 км к северо-западу от Шанхая. Крупный промышленный и культурный центр.

«Пасхальное яйцо» (англ. Easter Egg) — секрет в компьютерной игре, фильме или программном обеспечении, заложенный создателями. Отличие пасхального яйца в игре от обычного игрового секрета состоит в том, что его содержание, как правило, не вписывается в общую концепцию, выглядит в контексте неправдоподобно, нелепо, и зачастую является внешней ссылкой. Пасхальные яйца играют роль своеобразных шуток для внимательных игроков или зрителей.

Чаще всего для «получения» пасхального яйца следует произвести сложную или нестандартную совокупность действий, что делает маловероятным случайное обнаружение. Название происходит от популярного в США и бывших Британских колониях семейного мероприятия «охота за яйцами» (англ. egg hunt), устраиваемого накануне Пасхи, в котором участники должны, с помощью подсказок, найти как можно больше спрятанных по местности предметов — «пасхальных яиц».

Чжу Юаньчжан (21 октября 1328 — 24 июня 1398) — первый император китайской Империи Мин с 1368 по 1398. Присоединился к Восстанию Красных повязок, со временем стал предводителем сепаратистов и, несмотря на низкое происхождение, возглавил руководство страной со столицей в Нанкине. После самопровоглашения объявил о начале династии Мин. Историками был охарактеризован как реформатор, успешный политик и борец с влиянием монголов. Ряд исследователей сравнивал Чжу Юаньчжана c Мао Цзэдуном.


Чжэн Хэ (кит. трад. 鄭和, упр. 郑和, пиньинь: Zhèng Hé; 1371—1435) — китайский евнух, путешественник, флотоводец и дипломат, возглавлявший семь крупномасштабных морских военно-торговых экспедиций, посланных императорами Минской династии в страны Индокитая, Индостана, Аравийского полуострова и Восточной Африки.

Хотя частные китайские купеческие суда курсировали между Южным Китаем и Юго-Восточной Азией практически непрестанно со времён династии Сун, а при монгольской династии Юань совершались и военно-дипломатические экспедиции в страны Юго-Восточной Азии и даже на Шри-Ланку, как масштабы экспедиций Чжэн Хэ, так и высокое значение, придаваемое им императором Чжу Ди, были беспрецедентными. Эти экспедиции, хотя бы формально и на короткий срок (несколько десятилетий), сделали многочисленные царства Малайского полуострова, Индонезии, Шри-Ланки и Южной Индии вассалами Минской империи и принесли в Китай новые сведения о народах, населяющих берега Индийского океана. Полагают, что на историческое развитие Малайского полуострова, Суматры и Явы влияние экспедиций китайского флота оказалось более долговременным, так как они могли быть среди факторов, давших новый толчок к эмиграции китайцев в этот регион и усилению там роли китайской культуры.

Даже во времена главного покровителя Чжэн Хэ, императора Чжу Ди, экспедиции Чжэн Хэ подвергались суровой критике со стороны многих представителей конфуцианской элиты Китая, считавших их ненужными и дорогостоящими императорскими затеями. После смерти Чжэн Хэ и императора Чжу Чжаньцзи (внука Чжу Ди) эти изоляционистские взгляды возобладали на всех уровнях в правительстве минского Китая. В результате государственные морские экспедиции были прекращены, и большинство технической информации о флоте Чжэн Хэ было уничтожено или утрачено. Официальная «История Мин», скомпилированная в XVII—XVIII веках, отзывалась о его плаваниях в критическом ключе, но для многих людей в Китае, и особенно в сформировавшихся в Юго-Восточной Азии китайских общинах, евнух-флотоводец оставался народным героем.

В начале XX века, в период подъёма движения за освобождение Китая от иностранной зависимости, образ Чжэн Хэ обрёл новую популярность. В современной КНР Чжэн Хэ рассматривается как одна из выдающихся личностей в истории страны, а его плавания (обычно рассматриваемые как образец мирной политики Китая по отношению к своим соседям) противопоставляются захватническим экспедициям европейских колонизаторов XVI—XIX веков.

Юнлэ (кит. трад. 永樂, упр. 永乐, пиньинь: Yǒng lè, буквально: «Вечное счастье») — девиз правления третьего императора династии Мин в Китае Чжу Ди (кит. упр. 朱棣, пиньинь: Zhū Dì; 2 мая 1360 — 12 августа 1424) c 17 июля 1402 до его смерти в 1424 году. Чжу Ди называют вторым основателем династии. Храмовое имя — Чэн-цзу (кит. упр. 成祖, пиньинь: Chéngzǔ), посмертное имя — Вэнь-хуанди (кит. упр. 文皇帝, пиньинь: Wén huángdì, буквально «культурный император»).

Яо Мин (кит. 姚明, 12 сентября 1980, Шанхай) — китайский баскетболист, спортивный комментатор, президент Китайской баскетбольной ассоциации.

Играл за команду «Хьюстон Рокетс» (НБА) на позиции центрового. На момент выступлений в НБА являлся самым высоким игроком в чемпионате с ростом 2,29 метра. Знаменосец сборной Китая на открытии Олимпиады 2004 в Афинах и Олимпиады 2008 в Пекине. Оба родителя Яо в прошлом профессиональные баскетболисты. Рост его отца 202 см, а матери 190 см, уже в 10 лет рост Яо составлял 165 см.

Яо начал играть за «Шанхайских акул» ещё в подростковом возрасте и выступал за эту команду на протяжении 5 лет, в последний год став чемпионом КБА. В 2002 году он был выбран на драфте командой «Хьюстон Рокетс», имевшей право 1-го выбора. До этого лишь 2 китайца играли в этом турнире. С первого же сезона Яо ежегодно участвует в матче всех звёзд. Несмотря на это, «Рокетс» ни разу не добивались каких-либо значительных успехов на стадии плей-офф, а последние три года китайского гиганта мучали травмы. Из-за травм Яо пропустил весь сезон 2009/2010 года и не сыграл на чемпионате мира 2010 года в Турции. В 2020 году Яо Мин был включён в баскетбольный Зал славы.

Яо дебютировал в сборной Китая на летних Олимпийских играх 2000 года в Сиднее, и вместе с Ван Чжичжи и Менгке Батыром они составили так называемую «Великую стену». Во время Олимпийских игр в Афинах 2004, Яо нёс китайский флаг на церемонии открытия, по его словам он «осуществил свою давнюю мечту». На олимпийских играх 2004 года в Афинах в целом команда выступила неудачно, но Яо вошёл в символическую сборную баскетбольного турнира. На чемпионате мира 2006 года Китай дошёл лишь до 1/16 финала.

Его жена Е Ли в прошлом выступала за женскую баскетбольную сборную Китая.

Яо Мин является одним из самых узнаваемых и богатых людей Китая, ряд крупных компаний заключили с ним контракты. О его первых годах в НБА был снят документальный фильм, а сам он в соавторстве написал автобиографию. В июле 2009 года Яо Мин купил свой бывший китайский клуб «Шанхай Шаркс», чтобы помочь ему преодолеть серьёзные финансовые трудности и поднять со дна турнирной таблицы. В данный момент Яо Мин работает также и спортивным комментатором, ведя репортажи с баскетбольных соревнований (в том числе и с баскетбольного турнира Олимпийских игр 2012 года). В 2020 году Яо Мин был избран президентом Китайской баскетбольной ассоциации (CBA).

Ming (flash)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • SWFAction Examples
    • SWFSPrite basic examples
  • Ming Функции
    • ming_keypress — Returns the action flag for keyPress(char)
    • ming_setcubicthreshold — Set cubic threshold
    • ming_setscale — Set the global scaling factor.
    • ming_setswfcompression — Sets the SWF output compression
    • ming_useconstants — Use constant pool
    • ming_useswfversion — Sets the SWF version
  • SWFAction — The SWFAction class
    • SWFAction::__construct — Creates a new SWFAction
  • SWFBitmap — The SWFBitmap class
    • SWFBitmap::__construct — Loads Bitmap object
    • SWFBitmap::getHeight — Returns the bitmap’s height
    • SWFBitmap::getWidth — Returns the bitmap’s width
  • SWFButton — The SWFButton class
    • SWFButton::addAction — Adds an action
    • SWFButton::addASound — Associates a sound with a button transition
    • SWFButton::addShape — Adds a shape to a button
    • SWFButton::__construct — Creates a new Button
    • SWFButton::setAction — Sets the action
    • SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
    • SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)
    • SWFButton::setMenu — enable track as menu button behaviour
    • SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)
    • SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)


  • SWFDisplayItem — The SWFDisplayItem class
    • SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance
    • SWFDisplayItem::addColor — Adds the given color to this item’s color transform
    • SWFDisplayItem::endMask — Another way of defining a MASK layer
    • SWFDisplayItem::getRot — Описание
    • SWFDisplayItem::getX — Описание
    • SWFDisplayItem::getXScale — Описание
    • SWFDisplayItem::getXSkew — Описание
    • SWFDisplayItem::getY — Описание
    • SWFDisplayItem::getYScale — Описание
    • SWFDisplayItem::getYSkew — Описание
    • SWFDisplayItem::move — Moves object in relative coordinates
    • SWFDisplayItem::moveTo — Moves object in global coordinates
    • SWFDisplayItem::multColor — Multiplies the item’s color transform
    • SWFDisplayItem::remove — Removes the object from the movie
    • SWFDisplayItem::rotate — Rotates in relative coordinates
    • SWFDisplayItem::rotateTo — Rotates the object in global coordinates
    • SWFDisplayItem::scale — Scales the object in relative coordinates
    • SWFDisplayItem::scaleTo — Scales the object in global coordinates
    • SWFDisplayItem::setDepth — Sets z-order
    • SWFDisplayItem::setMaskLevel — Defines a MASK layer at level
    • SWFDisplayItem::setMatrix — Sets the item’s transform matrix
    • SWFDisplayItem::setName — Sets the object’s name
    • SWFDisplayItem::setRatio — Sets the object’s ratio
    • SWFDisplayItem::skewX — Sets the X-skew
    • SWFDisplayItem::skewXTo — Sets the X-skew
    • SWFDisplayItem::skewY — Sets the Y-skew
    • SWFDisplayItem::skewYTo — Sets the Y-skew
  • SWFFill — The SWFFill class
    • SWFFill::moveTo — Moves fill origin
    • SWFFill::rotateTo — Sets fill’s rotation
    • SWFFill::scaleTo — Sets fill’s scale
    • SWFFill::skewXTo — Sets fill x-skew
    • SWFFill::skewYTo — Sets fill y-skew
  • SWFFont — The SWFFont class
    • SWFFont::__construct — Loads a font definition
    • SWFFont::getAscent — Returns the ascent of the font, or 0 if not available
    • SWFFont::getDescent — Returns the descent of the font, or 0 if not available
    • SWFFont::getLeading — Returns the leading of the font, or 0 if not available
    • SWFFont::getShape — Returns the glyph shape of a char as a text string
    • SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height
    • SWFFont::getWidth — Returns the string’s width
  • SWFFontChar — The SWFFontChar class
    • SWFFontChar::addChars — Adds characters to a font for exporting font
    • SWFFontChar::addUTF8Chars — Adds characters to a font for exporting font
  • SWFGradient — The SWFGradient class
    • SWFGradient::addEntry — Adds an entry to the gradient list
    • SWFGradient::__construct — Creates a gradient object
  • SWFMorph — The SWFMorph class
    • SWFMorph::__construct — Creates a new SWFMorph object
    • SWFMorph::getShape1 — Gets a handle to the starting shape
    • SWFMorph::getShape2 — Gets a handle to the ending shape
  • SWFMovie — The SWFMovie class
    • SWFMovie::add — Adds any type of data to a movie
    • SWFMovie::addExport — Описание
    • SWFMovie::addFont — Описание
    • SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie
    • SWFMovie::importChar — Описание
    • SWFMovie::importFont — Описание
    • SWFMovie::labelFrame — Labels a frame
    • SWFMovie::nextFrame — Moves to the next frame of the animation
    • SWFMovie::output — Dumps your lovingly prepared movie out
    • SWFMovie::remove — Removes the object instance from the display list
    • SWFMovie::save — Saves the SWF movie in a file
    • SWFMovie::saveToFile — Описание
    • SWFMovie::setbackground — Sets the background color
    • SWFMovie::setDimension — Sets the movie’s width and height
    • SWFMovie::setFrames — Sets the total number of frames in the animation
    • SWFMovie::setRate — Sets the animation’s frame rate
    • SWFMovie::startSound — Описание
    • SWFMovie::stopSound — Описание
    • SWFMovie::streamMP3 — Streams a MP3 file
    • SWFMovie::writeExports — Описание
  • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip
  • SWFShape — The SWFShape class
    • SWFShape::addFill — Adds a solid fill to the shape
    • SWFShape::__construct — Creates a new shape object
    • SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o’clock
    • SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
    • SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCurve — Draws a curve (relative)
    • SWFShape::drawCurveTo — Draws a curve
    • SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
    • SWFShape::drawLine — Draws a line (relative)
    • SWFShape::drawLineTo — Draws a line
    • SWFShape::movePen — Moves the shape’s pen (relative)
    • SWFShape::movePenTo — Moves the shape’s pen
    • SWFShape::setLeftFill — Sets left rasterizing color
    • SWFShape::setLine — Sets the shape’s line style
    • SWFShape::setRightFill — Sets right rasterizing color
  • SWFSound — The SWFSound class
    • SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла
  • SWFSoundInstance — The SWFSoundInstance class
    • SWFSoundInstance::loopCount — Описание
    • SWFSoundInstance::loopInPoint — Описание
    • SWFSoundInstance::loopOutPoint — Описание
    • SWFSoundInstance::noMultiple — Описание
  • SWFSprite — The SWFSprite class
    • SWFSprite::add — Adds an object to a sprite
    • SWFSprite::__construct — Creates a movie clip (a sprite)
    • SWFSprite::labelFrame — Labels frame
    • SWFSprite::nextFrame — Moves to the next frame of the animation
    • SWFSprite::remove — Removes an object to a sprite
    • SWFSprite::setFrames — Sets the total number of frames in the animation
    • SWFSprite::startSound — Описание
    • SWFSprite::stopSound — Описание
  • SWFText — The SWFText class
    • SWFText::addString — Draws a string
    • SWFText::addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color
    • SWFText::__construct — Creates a new SWFText object
    • SWFText::getAscent — Returns the ascent of the current font at its current size, or 0 if not available
    • SWFText::getDescent — Returns the descent of the current font at its current size, or 0 if not available
    • SWFText::getLeading — Returns the leading of the current font at its current size, or 0 if not available
    • SWFText::getUTF8Width — calculates the width of the given string in this text objects current font and size
    • SWFText::getWidth — Computes string’s width
    • SWFText::moveTo — Moves the pen
    • SWFText::setColor — Sets the current text color
    • SWFText::setFont — Sets the current font
    • SWFText::setHeight — Sets the current font height
    • SWFText::setSpacing — Sets the current font spacing
  • SWFTextField — The SWFTextField class
    • SWFTextField::addChars — adds characters to a font that will be available within a textfield
    • SWFTextField::addString — Concatenates the given string to the text field
    • SWFTextField::align — Sets the text field alignment
    • SWFTextField::__construct — Creates a text field object
    • SWFTextField::setBounds — Sets the text field width and height
    • SWFTextField::setColor — Sets the color of the text field
    • SWFTextField::setFont — Sets the text field font
    • SWFTextField::setHeight — Sets the font height of this text field font
    • SWFTextField::setIndentation — Sets the indentation of the first line
    • SWFTextField::setLeftMargin — Sets the left margin width of the text field
    • SWFTextField::setLineSpacing — Sets the line spacing of the text field
    • SWFTextField::setMargins — Sets the margins width of the text field
    • SWFTextField::setName — Sets the variable name
    • SWFTextField::setPadding — Sets the padding of this textfield
    • SWFTextField::setRightMargin — Sets the right margin width of the text field
  • SWFVideoStream — The SWFVideoStream class
    • SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream
    • SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле
    • SWFVideoStream::setDimension — Устанавливает размер видео

Функции ming для flash

Ming — C-библиотека для создания файлов Adobe Flash (.swf). Может применяться в качестве PHP-модуля, позволяя динамически («на лету») создавать Flash-анимацию. Помимо PHP, библиотека может использоваться в языках программирования С++, Perl, Python, Ruby.

Корневая библиотека Ming распространяется на условиях GNU Lesser General Public License, а инструмент для командной строки по созданию .swf — на основании GNU General Public License, что делает Ming свободным ПО. [1]

Илон Маск рекомендует:  listing в HTML
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL