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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.10.2010, 17:08
FlashWizard вне форума Посмотреть профиль Отправить личное сообщение для FlashWizard Найти все сообщения от FlashWizard
  № 1  
Ответить с цитированием
FlashWizard
[+1 22.06.11]
 
Аватар для FlashWizard

Регистрация: Jun 2010
Адрес: г. Ташкент
Сообщений: 364
По умолчанию Почему класс не наследует статические переменные расширяемого класса?

Код AS3:
package {
   public class SupeClass {
   public static var str:String;   
 
   public function SuperClass() {
        str = 'ssss';
   }
   }
}
package {
   public class OtherClass extends SuperClass { 
 
   public function OtherClass() {
      str = 'dddd';
   }
   }
}
Я могу сделать так:
Код AS3:
trace(SuperClass.str); //ssss
А вот так что-то не срабатывает, выводит undefined:
Код AS3:
trace(OtherClass.str); //undefined

Старый 28.10.2010, 17:14
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Наследует, просто там пусто, трейс правильно выдает. Странно, FD такое даже не скомпилирует, пожалуется на конструктор родительского класса, ибо в нем при наследовании писать ничего нельзя.
__________________
тут я


Последний раз редактировалось КорДум; 28.10.2010 в 19:22.
Старый 28.10.2010, 17:14
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 3  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Хелп читаете?

Цитата:
Статические члены класса не наследуются. Невозможно сослаться на статический член класса, используя имя подкласса, что возможно в Java или C++. Однако можно сослаться на статическую переменную или статический метод в пределах класса или подкласса без использования квалификатора. См. пример ниже.

Инструкцию super или ключевое слово this нельзя использовать внутри статического метода.
Цитата:
Следующий пример иллюстрирует использование ключевого слова static для создания счетчика, который отслеживает количество созданных экземпляров класса. Поскольку переменная numInstances является статической, она будет создана только один раз для всего класса, а не для отдельных экземпляров. Создайте новый файл ActionScript с именем Users.as и введите следующий код:
Код AS3:
class Users { 
    private static var numInstances:Number = 0; 
    function Users() { 
        numInstances++; 
    } 
    static function get instances():Number { 
        return numInstances; 
    } 
}
Введите в сценарий следующий код:
Код AS3:
trace(Users.instances); 
var user1:Users = new Users(); 
trace(Users.instances); 
var user2:Users = new Users(); 
trace(Users.instances);
В следующем примере класс Users расширяется, чтобы показать, что статические переменные и методы не наследуются, но на них можно сослаться в подклассах.
Код AS3:
class PowerUsers extends Users{
    function PowerUsers() {
        instances++;  // unqualified reference to static property Users.instances is legal
    }
}
 
trace(PowerUsers.instances); // error, cannot access static property using PowerUsers class

Старый 28.10.2010, 17:16
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
А, не наследует? Что ж, будем знать. И я не могу представить себе никакой ситуации, где бы это потребовалось. А топикстартеру хочется посоветовать не писать во FlashIDE вообще.
__________________
тут я

Старый 28.10.2010, 17:28
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 5  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
КорДум

Это я топик стартеру писал ...

Старый 28.10.2010, 17:32
FlashWizard вне форума Посмотреть профиль Отправить личное сообщение для FlashWizard Найти все сообщения от FlashWizard
  № 6  
Ответить с цитированием
FlashWizard
[+1 22.06.11]
 
Аватар для FlashWizard

Регистрация: Jun 2010
Адрес: г. Ташкент
Сообщений: 364
Цитата:
А топикстартеру хочется посоветовать не писать во FlashIDE вообще.
Что значит не писать во FlashIDE?

Старый 28.10.2010, 17:33
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Не писать во флеше, а использовать сторонние редакторы - FD, FDT и прочее.
__________________
тут я

Старый 28.10.2010, 17:36
FlashWizard вне форума Посмотреть профиль Отправить личное сообщение для FlashWizard Найти все сообщения от FlashWizard
  № 8  
Ответить с цитированием
FlashWizard
[+1 22.06.11]
 
Аватар для FlashWizard

Регистрация: Jun 2010
Адрес: г. Ташкент
Сообщений: 364
Я где я дал повод подумать, что я пишу во Флеше? Я использую FlashDevelop.

Старый 28.10.2010, 17:41
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 9  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
И он вам дал такое скомпилировать? А как же неопределенная переменная str?
__________________
тут я

Старый 28.10.2010, 17:42
FlashWizard вне форума Посмотреть профиль Отправить личное сообщение для FlashWizard Найти все сообщения от FlashWizard
  № 10  
Ответить с цитированием
FlashWizard
[+1 22.06.11]
 
Аватар для FlashWizard

Регистрация: Jun 2010
Адрес: г. Ташкент
Сообщений: 364
Я здесь написал (на форуме). Не загоняя во Флэш.

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

Теги
наследование , статические переменные
Опции темы
Опции просмотра

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

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


 


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


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