Чтение онлайн

ЖАНРЫ

Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:

//сами переменные остаются внутренними переменными класса

//==========================================================================

private static Pen s_bluePen;

public static Pen globalBluePen {

get {

//Если перо еще не было создано

if (s_bluePen == null) {

s_bluePen =new System.Drawing.Pen(System.Drawing.Color.Blue);

}

return s bluePen;

}

} //Конец свойства

//=========================================================

//Подход 2:

//Загрузить глобально и кэшировать все

//используемые объекты Pen, ImageAttribute, Font и Brush.

//

//Внешний код получает доступ ко всем общедоступным членам,

//так что никакие функции доступа не нужны.

//=========================================================

public static Pen g_blackPen;

public static Pen g_whitePen;

public static System.Drawing.Imaging.ImageAttributes g_ImageAttribute;

private static bool s_alreadyInitialized;

public static Font g_boldFont;

public static Font g_smallTextFont;

public static Brush g_greenBrush;

public static Brush g_yellowBrush;

public static Brush g_redBrush;

public static Brush g_blackBrush;

//==============================================================

//Эта функция должна быть вызвана до попыток доступа к любому из

//вышеперечисленных глобальных объектов

//==============================================================

public static void InitializeGlobals {

if (s_alreadyInitialized == true) {

return;

}

g_blackPen = new System.Drawing.Pen(Color.Black);

g_whitePen = new System.Drawing.Pen(Color.White);

g_ImageAttribute = new System.Drawing.Imaging.ImageAttributes;

g_ImageAttribute.SetColorKey(Color.White, Color.White);

g_boldFont = new Font(FontFamily.GenericSerif, 10, FontStyle.Bold);

g_smallTextFont = new Font(FontFamily.GenericSansSerif, 8, FontStyle.Regular);

g_blackBrush = new SolidBrush(System.Drawing.Color.Black);

g_greenBrush = new SolidBrush(System.Drawing.Color.LightGreen);

g_yellowBrush = new SolidBrush(System.Drawing.Color.Yellow);

g_redBrush = new SolidBrush(System.Drawing.Color.Red);

s_alreadyInitialized = true;

}

//=========================================================

//Подход 3: Возвратить массив связанных ресурсов.

// Кэшировать ресурсы локально, чтобы при многократных

// запросах не загружались (понапрасну) их дубликаты.

//=========================================================

private static Bitmap m_CaveMan_Bitmap1;

private static Bitmap m_CaveMan_Bitmap2;

private static Bitmap m_CaveMan_Bitmap3;

private static Bitmap m_CaveMan_Bitmap4;

private static System.Collections.ArrayList m_colCaveManBitmaps;

//--------------------------------------------------

//Создать и загрузить массив изображений для спрайта

//--------------------------------------------------

public static System.Collections.ArrayList g_CaveManPictureCollection {

//Изображения загружаются лишь в том случае, если мы их еще не загрузили

if (m_CaveMan_Bitmap1 == null) {

//-----------------------------------------------------------------

//Загрузить изображения. Эти изображения хранятся в виде

//встроенных ресурсов в нашем двоичном приложении.

//

//Загрузка изображений из внешних файлов осуществляется аналогичным

//образом, но выполнить ее проще (нам достаточно лишь указать

//имя файла в конструкторе растровых изображений).

//------------------------------------------------------------------

//Получить ссылку на нашу двоичную сборку

System.Reflection.Assembly thisAssembly = System.Reflection.Assembly.GetExecutingAssembly;

//Получить имя сборки

System.Reflection.AssemblyName thisAssemblyName = thisAssembly.GetName;

string assemblyName = thisAssemblyName.Name;

//Загрузить изображения в виде двоичных потоков из нашей сборки

m_CaveMan_Bitmap1 = new System.Drawing.Bitmap(

thisAssembly.GetManifestResourceStream(

assemblyName + ".Hank RightRunl.bmp"));

m_CaveMan_Bitmap2 = new System.Drawing.Bitmap(

thisAssembly.GetManifestResourceStream(

assemblyName + ".Hank_RightRun2.bmp"));

Поделиться с друзьями: