![]() |
|
||||||||||
|
|||||
|
Banned
[+1 02.07.08]
[+3 02.07.08] Регистрация: Jul 2007
Сообщений: 52
|
Пишу кнопочный класс простейший :
class nav.MainMenu extends MovieClip {
var _loc1:MovieClip;
var _loc2:TextField;
public function MainMenu() {
this.onRollOver = a_Roller;
this.onRollOut = b_Roller;
this.onReleaseOutside = b_Roller;
this.onRelease = c_Roller;
}
function a_Roller() {
this.gotoAndPlay("Over");
}
function b_Roller() {
this.gotoAndPlay("Out");
}
function c_Roller() {
this.gotoAndPlay("Release");
this.enabled = false;
}
}
Кнопок 8 штук. Доступ к ним использую с помощью имени Да и еще вопрос какой наилучший способ обращения к классам кнопок мой метод описан выше. Последний раз редактировалось 3d Developer; 29.06.2008 в 18:49. |
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
Здравствуйте 3d Developer!
Мне не совсем понятна вот эта конструкция: Цитата:
В коде я не вижу инициализацию _loc1 и _loc2. Объявление есть, а инициализации похоже нет. Или я неправ. Потом, обратите внимание _loc1 и _loc2 без аттрибута private, а значить нарушается принцип инкапсуляции коцепции ООП - пользуйтесь акссессорами или открытыми методами для инициализации закрытых свойств. И вообще, по приведенному классу трудно определить, что он делает. Поэтому, сделайте описание того, что Вы хотите сделать подробно по пунктам, обрисуйте варианты взаимодействия программы с пользователем, укажите аспекты и условия.
__________________
Случайность, господа, это знаете ли непознанная необходимость. |
|
|||||
|
Banned
[+1 02.07.08]
[+3 02.07.08] Регистрация: Jul 2007
Сообщений: 52
|
хм... странное мнение. Как бы так : this.enabled = false; значит что кнопка недоступна.
Далее Private мы используем в том случае если прячем _loc1 и _loc2 от области видимого кода. А _loc1 и _loc2 есть обычные мувиклипы находящиеся внутри кнопки и если дать их в привайт (поидее) то работать не будут. Далее _loc1 не определена как таковая в коде это так( она на всяк случай у мня висит вдруг че добавлю). _loc2 текствовое поле - определено. И так ставлю вопрос более понтяным : При нажатии кнопки под действием this.enabled = false; кнопка становится недоступна но она так же и остается недоступной когда я нажму вторую кнопку класса и т.д. да хоть 500 и все они будут недоступными для нажатия больше. Вопрос стоял в том как аккуратно избавится от данных событий тоесть ПРИ нажатии кнопки A ( она стала недоступна ) а кнопки B,c,D,E получили свойство enabled = true; Как то так... надеюсь понятно. Просто писать так типа : мне кажеться не гуманным когда таких кнопок море этож класс епт |
|
|||||
|
Modus ponens
|
class nav.MainMenu extends MovieClip {
private static var __instances:Array;
private static function __enableAll():void
{
var i:Number;
var l:Number = __instances.length;
for (i = 0; i < l; i++) {
MovieClip(__instances[i]).enabled = true;
}
}
var _loc1:MovieClip;
var _loc2:TextField;
public function MainMenu() {
this.onRollOver = a_Roller;
this.onRollOut = b_Roller;
this.onReleaseOutside = b_Roller;
this.onRelease = c_Roller;
if (!__instances) __instances = [];
__instances.push(this);
}
function a_Roller() {
this.gotoAndPlay("Over");
}
function b_Roller() {
this.gotoAndPlay("Out");
}
function c_Roller() {
this.gotoAndPlay("Release");
__enableAll();
this.enabled = false;
}
}
__________________
Hell is the possibility of sanity |
|
|||||
|
Banned
[+1 02.07.08]
[+3 02.07.08] Регистрация: Jul 2007
Сообщений: 52
|
спасибо вам большое!
|
|
|||||
|
Banned
[+1 02.07.08]
[+3 02.07.08] Регистрация: Jul 2007
Сообщений: 52
|
WVXVW прошу Вас описать вообщем испльзованный код. Я в программ недавно плохо понимаю некоторые моменты....
Кроме всего описанного как еще дописать чтобы после события onRelease произошло событие gotoAndStop("Over") у всех кроме того у которого произошло событие onRelease/ Пробовал добавить так но ничего не выходит видимо загвоздка в другом Поясните плиз вот эти 2 строчки мне неособо понятны они почему так и что они делают: |
|
|||||
|
Modus ponens
|
Ок, мы создаем статическую переменную типа массив, и в нее складываем все вновь созданные экземпляры нашего класса (на самом деле не самый удачный ход, т.как удаляй экземпляр класса нам нужно будет удалить и ссылку на него из этого массива. Поэтому в примере добавлен небольшой хак, позволяющий до удаления клипа "отписаться".
Чтобы проиграть остальные клипы, я бы добавил еще одну статическую переменную указывающую на клип, который проигрывать не нужно, и, соответственно, перебирая клипы в цикле его бы пропустил. Пример прилагается.
__________________
Hell is the possibility of sanity |
|
|||||
|
Banned
[+1 02.07.08]
[+3 02.07.08] Регистрация: Jul 2007
Сообщений: 52
|
Спасибо Вам. Если что попробую отписаться в личку!
|
|
|||||
|
Banned
[+1 02.07.08]
[+3 02.07.08] Регистрация: Jul 2007
Сообщений: 52
|
WVXVW Вообщем то во флеш я давно но как аниматор в основном. Основные правила написание простейших функций я знаю. Вот даже разобрался сам как простые классы писать ((( но не доконца. Недавно попалась книженция Гурского на АС2.0 , что скажите стоит ли ее читать ? А точнее хорошо ли и понятно ли написана глава ООП в данной книге ? ( Просто именно ООП меня интересует) Заметил в преведенном ниже коде ASnative сильно смахивающую на недокументированные функции языка )))). хотя может это ит от Ball duplicate взято ) точно не глядел
|
![]() |
![]() |
Часовой пояс GMT +4, время: 15:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|