Показать сообщение отдельно
Старый 12.09.2009, 22:03
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Нужно, чтобы на момент назначения на события кнопки функций, кнопка как-то реально присутствовала на сцене, а у вас внутри Mc2 - первый кадр пустой.
Вариант 1. Ставим в первый кадр любой мувик с альфа = 0;
Вариант 2. Убираем второй кадр и оставляем один кадр, все равн кнопка сразу же делается видимой.

Вариант 3. Пишем функцию для выполнения в корне:

Код AS1/AS2:
function Mc2Release() {
 blink.gotoAndPlay(2) //просто наглядное действие
}
Внутри Mc2 - во втором кадре, где появляется сама кнопка, пишем ссылку на объявленную в _root функцию:
Код AS1/AS2:
btn.onRelease = _root.Mc2Release;
3 вариант - наиболее толерантен к имеющейся структуре (менять ничего не нужно, только код вписать)

Добавлено через 15 минут
А "даю" я .. просто не организовывают так как у вас. Много ненужный проблем исчезает при правильном построении ролика..
Я же говорил: сделайте слой, общий для всего ролика и разместите там элементы навигации. И управляйте ими как хотите - через _visible и _alpha сообразно вашим событиям.
Я делаю так. Например, чтобы кнопка сперва не была видна сразу, в среде разработки, в свойствах, я ставлю ей alpha на 0%, в коде пишу _visible = false или enabled = false;
Затем в нужный момент программно включаю
Код AS1/AS2:
btn._alpha = 100;
btn._visible = true ;
Вот вам живой пример из проекта:

Код AS1/AS2:
// ф-я управления кнопками сохранить, отменить;
function manageCancelBut (dir) {	
	switch (dir) {
	case 'on':
	cancel_btn.enabled = true;	
	cancel_btn._alpha = 100;	
	break ;
	case 'off':
	cancel_btn.enabled = false  ;
	cancel_btn._alpha = 0;	
	break ;		
	}
};
function manageSaveBut (dir) {	
	switch (dir) {
	case 'on':
	saveData_btn.enabled = true ;	
	saveData_btn._alpha = 100;	
	break ;
	case 'off':
	saveData_btn.enabled = false ;
	saveData_btn._alpha = 0;	
	break ;		
	}
};
В начале кода у меня на _root у меня выключается все:
Код AS1/AS2:
manageSaveBut('off');
manageCancelBut('off');
При этом альфа в авторской среде выставлена на 0%, чтобы не было первоначального мигания, при выключении, а кнопки были невидимы сразу.
А потом, когда нужно, я их проявляю:
Код AS1/AS2:
_root.manageCancelBut('on');
То есть вызываю из абсолютно любого места ролика.
Естественно все onRelease и прочее прописаны на _root сразуи прекарсно работают.


Последний раз редактировалось mooncar; 12.09.2009 в 22:29.