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

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

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
По умолчанию как у TextFieldа сделать buttonMode = true без добавления его в контейнер

есть текстовое поле, нужно, чтобы у него появилось свойство buttonMode, пытаюсь сделать Sprite(textFieldName) - не работает... можно ли как-то его сделать со свойством buttonMode без добавления в спрайт?

и как вы узнаёте к каким типам можно приводить TextField? есть какая-то таблица совместимости при приведении типов?

Старый 29.09.2015, 21:54
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
TextField не является потомком Sprite,поэтому привести его к спрайту не выйдет.Приводить текстфилды можно к любому типу, который является наследником текстфилда.Как вариант можно рисовать поверх поля прозрачный спрайт размером с поле и назначать ему buttonMode, но имхо лучше тогда уж поместить и текстфилд в него.А с чем связан запрет на помещение поля в спрайт?

Старый 29.09.2015, 21:55
nelco вне форума Посмотреть профиль Отправить личное сообщение для nelco Найти все сообщения от nelco
  № 3  
Ответить с цитированием
nelco
 
Аватар для nelco

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
понял, спасибо... нет, запрета нет, думал просто, что может можно как-нибудь без этого, чтобы меньше кода было и меньше объектов

Старый 29.09.2015, 21:59
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 4  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Цитата:
Сообщение от nelco Посмотреть сообщение
есть текстовое поле, нужно, чтобы у него появилось свойство buttonMode, пытаюсь сделать Sprite(textFieldName) - не работает... можно ли как-то его сделать со свойством buttonMode без добавления в спрайт?
Есть только 2 способа:
1. Создать собственный класс на основе TextField и дописать ему свойство buttonMode. Понадобиться самостоятельно запрограммировать работу buttonMode, например, слушая события RollOver, RollOut и соответствующим образом изменять курсор.
2. Либо поместить текстовое поле в спрайт контейнер.

Цитата:
Сообщение от nelco Посмотреть сообщение
как вы узнаёте к каким типам можно приводить TextField? есть какая-то таблица совместимости при приведении типов?
Это называется наследованием. Это один из фундаментальных и самых базовых принципов в ооп программировании.
Текстовое поле можно привести к любому типу, от которого оно наследуется. Цепочка наследования указана в справке для любого класса. Текст филд имеет такую:
Цитата:
TextField -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object
__________________
Дети не должны знать о своих родителях

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
с наследованием вроде разбираюсь, но думал, что приведение типов может быть и вверх по цепочке наследования в каких-то случаях особых, точнее я вообще не знал, что от цепочки наследования зависит... теперь понял - только вниз по цепочке наследования... спасибо

Старый 29.09.2015, 23:15
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 6  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
теперь понял - только вниз
Скорее только вверх Object - самый базовый тип(от него все наследуются).На диаграммах его обычно рисуют в самом верху.

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

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от undefined Посмотреть сообщение
Скорее только вверх Object - самый базовый тип(от него все наследуются).На диаграммах его обычно рисуют в самом верху.
вот что интерсно, если текстфилд привести к object, то класс класс станет одним из расширений object. Так же мувик/спрайт можно привести к object, так вот, если тексфилд привести к родителю обжект, получится ли в итоге его расширить после до мувика к примеру (возможно слова привести и расширение не к месту, путаюсь)

Старый 30.09.2015, 00:37
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
"Привести к ..." значит "рассматривать, как ..."
Это не значит "изменить". С самим объектом при этом ничего не происходит абсолютно. Вы просто рассматриваете "СинийМяч" как "Мяч", потому что в синем есть все свойства просто мяча + еще что-то. Но вы говорите: "я не хочу ничего знать про еще что-то, мне достаточно того, что это Мяч". Вот что такое приведение. И хотя Мяч может быть расширяет класс Игрушка, это не значит что СинийМяч можно превратить в Солдатика.
__________________
Reality.getBounds(this);

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от nelco Посмотреть сообщение
теперь понял - только вниз по цепочке наследования... спасибо
Можно в обе стороны, если есть уверенность в том, что объект действительно принадлежит к такому типу
Рассмотрим например такой вариант:

Код AS3:
// есть класс наследник спрайта
package {
     public class SomeClass extends Sprite {
 
     }
}
 
// и есть метод принимающий спрайт как параметр
private function takeSprite(value:Sprite):void {
      if (value is SomeClass) {
           trace("Да, все ок, этот спрайт действительно SomeClass");
      }
}

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

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
Можно в обе стороны
Дык при вызове takeSprite аргумент приведется к спрайту т.е. вверх по иерархии, а is к приведению отношения не имеет.

Добавлено через 4 минуты
или имелась в виду такая конструкция:
Код AS3:
private function takeSprite(value:Sprite):void {
      if (value is SomeClass) {
            var someClassRef:SomeClass=value as SomeClass;
      }
}
?

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

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

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


 


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


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