Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.09.2009, 12:02
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 1  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
По умолчанию О static. Вопросы

Код AS3:
public class Button{
             protected static var xSie=800; //private static
             protected static var ySize=600; //private static
}
и
Код AS3:
public class Button{
             protected const var xSie=800;
             protected const var ySize=600;
}
1. Отличие только в том, что во время работы код 1 можно будет изменить?
2. Какой смысл в private static? private же закрывает доступ к данным даже потомкам.
3. Можете привести примеры использования static? Например, при масштабировании окна приложения static xSize, ySize умножается на процент масштабирования и в итоге все кнопки изменяют свой размер пропорционально изменению окна?

з.ы. вроде ответ был. теперь куда-то пропал.. Извините за назойливость. Религия ни при чем - кроме Мука ничего нет.


Последний раз редактировалось TommyLee; 25.09.2009 в 12:22.
Старый 25.09.2009, 12:17
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Да что ж такое? Вам хэлп открыть и почитать религия не позволяет что ли?
Цитата:
Статические переменные
Статические переменные объявляются с использованием комбинации ключевого слова static с инструкцией
var или const. Статические переменные, присоединяемые к классу, а не к его экземпляру, полезны для
хранения и совместного использования информации, которая применяется ко всему классу объектов.
Например, статическую переменную уместно использовать, если требуется вести учет количества созданных
экземпляров объекта или сохранить максимально допустимое количество экземпляров класса.
В следующем примере создается переменная totalCount для отслеживания количества экземпляров класса и
константаMAX_NUM для хранения максимального числа экземпляров. Переменные totalCount и MAX_NUM
являются статическими, так как содержат значения, применяемые ко всему классу, а не к отдельному
экземпляру.
class StaticVars
{
public static var totalCount:int = 0;
public static const MAX_NUM:uint = 16;
}
Код, внешний для класса StaticVars и его подклассов, может ссылаться на свойства totalCount и MAX_NUM
только через сам класс. Например, выполняется следующий код:
trace(StaticVars.totalCount); // output: 0
trace(StaticVars.MAX_NUM); // output: 16
К статическим переменным нельзя обратиться через экземпляр класса, поэтому следующий код возвращает
ошибки.
var myStaticVars:StaticVars = new StaticVars();
trace(myStaticVars.totalCount); // error
trace(myStaticVars.MAX_NUM); // error
Переменные, объявленные с использованием ключевых слов static и const должны инициализироваться
одновременно с объявлением константы, что и делает класс StaticVars для MAX_NUM. Для константы MAX_NUM
нельзя присвоить значение внутри конструктора или метода экземпляра. Следующий код выдаст ошибку, так
как его недопустимо использовать для инициализации статической константы.
// !! Error to initialize static constant this way
class StaticVars2
{
public static const UNIQUESORT:uint;
function initializeStatic():void
{
UNIQUESORT = 16;
}
}

Старый 25.09.2009, 12:28
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 3  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Цитата:
Сообщение от TommyLee Посмотреть сообщение
Код AS3:
public class Button{
             protected const var xSie=800;
             protected const var ySize=600;
}
Что это такое??
__________________
Лучше быть умным и иногда делать глупости, чем глупым и постоянно умничать!

Старый 25.09.2009, 12:35
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 4  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
http://help.adobe.com/ru_RU/ActionSc...rogramming.pdf

Старый 25.09.2009, 12:40
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 5  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
Цитата:
Сообщение от 2morrowMan Посмотреть сообщение
Что это такое??
ага, глюкануло.


Последний раз редактировалось TommyLee; 25.09.2009 в 12:43.
Старый 25.09.2009, 12:43
ToRR вне форума Посмотреть профиль Отправить личное сообщение для ToRR Найти все сообщения от ToRR
  № 6  
Ответить с цитированием
ToRR

Регистрация: Feb 2007
Сообщений: 63
Есть смысл все константы делать static, т.к. они все равно не изменяются.
Иначе, без static у вас в каждом объекте будут храниться дублирующиеся неизменяемые данные, добавив static вы от этой проблемы избавитесь.
private static const, например, - константа, доступная только в том классе, в котором ее объявили.
static var - есть переменная класса.
пример использования private static var - хранение ссылки на единственный экземпляр класса в паттерне Синглтон.

Старый 25.09.2009, 12:44
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 7  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
Цитата:
Сообщение от alexcon314 Посмотреть сообщение
спасибо. видел в прикрепленной, решил сэкономить. глупо получилось..

Добавлено через 7 минут
ToRR, спасибо за объяснение.

Старый 26.09.2009, 03:49
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
ToRR, никакого смысла делать все константы static нету. иногда надо в каждом экземпляре держать не изменяющиеся данные. но не факт, что эти данные будут дублирующими.

Старый 26.09.2009, 06:33
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Главное protected и static одновременно не делайте, эти две вещи несовместимы т.как статические методы / свойства не наследуются.
__________________
Hell is the possibility of sanity

Старый 26.09.2009, 10:25
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 10  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Главное protected и static одновременно не делайте, эти две вещи несовместимы т.как статические методы / свойства не наследуются.
Co static совместимы только private, public и internal?

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:39.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.