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

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

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

Регистрация: Mar 2008
Сообщений: 6
>ну во-первых, экземпляр myButtton должен как-то получать ссылку на экземпляр myButton2, и затем уже у этого экземпляра нужно менять свойства/вызывать методы. Для примера, в Document Class подписываемся на нужный event myButton-а, и по нему вызываем нужное действие в myButton2.
>
>P. S. Имена классов должны начинаться с большой буквы
Они в пакете main, и допустим код
Код:
/main/myButton2.as
package main {
          public class myButton2 extends MovieClip {
                 ....
                 static public function hello() {
                       trace("Hello World!");
                 }
          }
}
/main/myButton.as
package main {
          public class myButton extends MovieClip {
                 ....
                 public function myButton() {
                       main.myButton2.hello();
                 }
          }
}
Выведет в аутпут приветствие к этому миру.
Однако проблема в том что

Код:
/main/myButton2.as
package main {
          public class myButton2 extends MovieClip {
                 ....
                 public function setVisible(vis_state:Boolean) {
                       visible=vis_state;
                 }
                 ....
                 public function myButton2() {
                       setVisible(false); // Все отработает, и символ скроется
                 }
          }
}

/main/myButton.as
package main {
          public class myButton extends MovieClip {
                 ....
                 public function myButton() {
                       main.myButton2.setVisible(true); // крикнет что метода setVisible у myButton2 нет. Однако там метод в паблике и это меня ужасно путает, т.к. я не понимаю чего-то by design.
                 }
          }
}
Второй вариант:
Код:
/main/myButton2.as
package main {
          public class myButton2 extends MovieClip {
                 ....
                 static public function setVisible(vis_state:Boolean) {
                       visible=vis_state; // Скажет что перменная visible недоступна. 
                 }
          }
}

/main/myButton.as
package main {
          public class myButton extends MovieClip {
                 ....
                 public function myButton() {
                       main.myButton2.setVisible(true); // скажет что переменная visible внутри метода main.myButton2.setVisible() недоступна.
                 }
          }
}
Извратился добавив в класс переменную static public vis_state:Boolean и таймер который следит за ее состоянием, заработало. Но это ужасный и нежелательный вариант естественно.

>P. S. Имена классов должны начинаться с большой буквы
0_o.

UPD:
Хм. Походу я очень затупил посчитав что main.myButton2 возвращает созданный в рантайме экземпляр класса.
UPD2:
Все, вспомнил что значит статик в сях, понял свою ошибку, спасибо).


Последний раз редактировалось n0uk; 01.03.2008 в 03:07.
Создать новую тему   Часовой пояс GMT +4, время: 07:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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