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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 07.06.2004, 16:46
Geniot вне форума Посмотреть профиль Отправить личное сообщение для Geniot Посетить домашнюю страницу Geniot Найти все сообщения от Geniot
  № 1  
Geniot

Регистрация: Oct 2002
Адрес: Minsk, Belarus
Сообщений: 103
Отправить сообщение для Geniot с помощью ICQ
По умолчанию Обращение к внешним функциям из класса

Привет,

может я чё не так делаю??

В главном фрейме "завожу" класс:

import MyClass;
mw = new MyClass(this);
mw.start();
stop();

Класс:
class MyClass{
private static var ROOT_MC:MovieClip;
//constructor
function MyClass(rmc:MovieClip){
ROOT_MC = rmc;
}
public function start():Void{
ROOT_MC.nextScene();
}

}

По идее класс владеет ссылкой на рут и должен перевести управление к следующей сцене. Но этого не происходит. Также если в руте создать какую-нибудь функцию и попробовать её вызвать из класса это не сработает. За то можно изменять свойства объектов рута из класса. Например:
ROOT_MC.ok_button._visible = false;

но опять же нельзя навесить хэндлер на кнопки рута:
ROOT_MC.ok_button.onRelease = function(){
trace("ok clicked");
}
не работает

Вопрос: как вызывать функции рута или таймлайна рута из класса?
__________________
Не всё то флэш, что шевелиться.

Старый 08.06.2004, 02:04
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 2  
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
У меня вроде подобные вещи работают нормально. По крайней мере когда обращаюсь к текстомым полям в руте...

Старый 08.06.2004, 07:55
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 3  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
По умолчанию Re: Обращение к внешним функциям из класса

Цитата:
Оригинал написал(а) Geniot
Привет,

может я чё не так делаю??

В главном фрейме "завожу" класс:

import MyClass;
mw = new MyClass(this);
mw.start();
stop();

Класс:
class MyClass{
private static var ROOT_MC:MovieClip;
//constructor
function MyClass(rmc:MovieClip){
ROOT_MC = rmc;
}
public function start():Void{
ROOT_MC.nextScene();
}

}

По идее класс владеет ссылкой на рут и должен перевести управление к следующей сцене. Но этого не происходит. Также если в руте создать какую-нибудь функцию и попробовать её вызвать из класса это не сработает. За то можно изменять свойства объектов рута из класса. Например:
ROOT_MC.ok_button._visible = false;

но опять же нельзя навесить хэндлер на кнопки рута:
ROOT_MC.ok_button.onRelease = function(){
trace("ok clicked");
}
не работает

Вопрос: как вызывать функции рута или таймлайна рута из класса?
Ну ... может нужно было написать
Код:
class MyClass extends MovieClip{
Да ещё, я так и не понимаю, зачем писать

Цитата:
private static
ЗАЧЕМ? Ведь переменная становится тем типом, каким была первый раз вызвана, а это лишь ломание ГОЛОВЫ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
__________________
flash/flex/unity

Старый 08.06.2004, 07:57
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 4  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Что ты хочешь сказать, что обращение к рутовым функциям ни к чему не приводит?
Попоробуй порисовать из класса в руте. ? Всё получится. Это скорее с головой не в порядке у кого-то ...
__________________
flash/flex/unity

Старый 08.06.2004, 15:38
Geniot вне форума Посмотреть профиль Отправить личное сообщение для Geniot Посетить домашнюю страницу Geniot Найти все сообщения от Geniot
  № 5  
Geniot

Регистрация: Oct 2002
Адрес: Minsk, Belarus
Сообщений: 103
Отправить сообщение для Geniot с помощью ICQ
Хм. Похоже не работает только nextScene(). И я теперь понимаю почему, nextScene() не является методом класса MovieClip. Просто так с боку припёку, появился во 2ом флэше...

class MyClass extends MovieClip не помогло для решения этой проблемы - вызова nextScene() из класса.

private static нужно использовать, когда мы не хотим, чтобы статическая переменная была изменена случайно вне класса. В то же время, когда мы хотим, чтобы существовала только одна такая переменная для всех экземпляров класса.

С головой всё в порядке.
__________________
Не всё то флэш, что шевелиться.

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

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

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


 


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


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