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

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

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

Регистрация: Jul 2006
Адрес: nsk
Сообщений: 93
Отправить сообщение для island с помощью ICQ
По умолчанию статические свойства классов

Есть, например, код:
Код:
class Trash {
	
	public static var n:Number;
	
	public function Trash() {};
	
	public static function init() {
		n = 100;
	}
}
На рут кидаем текстфилд и обзываем его tf.
На основной временной шкале пишем:
Код:
_root.tf.text = Trash.n;
Trash.init();
Как и следует ожидать, выводится undefined. Но если запустить второй раз этот swf, не закрывая проигрыватель, то в tf.text будет 100. То есть статическое свойство присоединилось к _global и при повторном запуске в том же проигрывателе оно уже заранее инициализировано. Так вот это мне очень не нравится. Есть ли способ очищать _global от занесенных туда моих статических свойств? Заранее неизвестно какие там свойства и сколько их.

Старый 02.03.2007, 09:23
Tardos Mors вне форума Посмотреть профиль Отправить личное сообщение для Tardos Mors Найти все сообщения от Tardos Mors
  № 2  
Ответить с цитированием
Tardos Mors

Регистрация: Jul 2006
Адрес: Новосибирск
Сообщений: 530
Отправить сообщение для Tardos Mors с помощью ICQ
Дело в том, что при повторном проигрывании ролика уже созданные переменные никуда не деваются, и поэтому придется удалять их все в ручную. Есть простой способ - все содержимое _root запихать в мувик и чтобы начать проигрывание сначала перезагружать его.

Старый 02.03.2007, 09:59
island вне форума Посмотреть профиль Отправить личное сообщение для island Посетить домашнюю страницу island Найти все сообщения от island
  № 3  
Ответить с цитированием
island
 
Аватар для island

Регистрация: Jul 2006
Адрес: nsk
Сообщений: 93
Отправить сообщение для island с помощью ICQ
В том то и дело, что статические свойства записываются не в рут, а "выше" - в глобал. Можно ли перегрузить глобал?
У меня есть набор классов, которые в зависимости от значений их статических свойств на момент инициализации ведут себя совершенно по-разному... Мне не хочется в них копаться, отлавливая где какие свойства используются, и каждый раз при запуске ролика сбрасывать все значения статических свойств. Хотелось бы сделать так, чтобы при повторном запуске ролика проигрыватель был бы девственно чист

Старый 02.03.2007, 10:40
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Сделать стат. функцию initialize(), которая сбрасывает значения.

Старый 02.03.2007, 11:46
island вне форума Посмотреть профиль Отправить личное сообщение для island Посетить домашнюю страницу island Найти все сообщения от island
  № 5  
Ответить с цитированием
island
 
Аватар для island

Регистрация: Jul 2006
Адрес: nsk
Сообщений: 93
Отправить сообщение для island с помощью ICQ
Цитата:
Сообщение от __etc
Сделать стат. функцию initialize(), которая сбрасывает значения.
Для этого мне нужно знать все используемые статические свойства... А если классов вагон, и в процессе работы над проектом будут добавляться другие классы, надо постоянно обновлять функцию initialize(). Интересует именно возможность "рестартнуть" плеер, или убедиться в отсутствии такого механизма.

Старый 02.03.2007, 12:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Сей баг наблюдается лишь при тестировании в IDE. Могу лишь посоветовать закрывать окно и делать тест по новой.

Старый 02.03.2007, 13:10
island вне форума Посмотреть профиль Отправить личное сообщение для island Посетить домашнюю страницу island Найти все сообщения от island
  № 7  
Ответить с цитированием
island
 
Аватар для island

Регистрация: Jul 2006
Адрес: nsk
Сообщений: 93
Отправить сообщение для island с помощью ICQ
нет, я говорю про swf-файл, открываемый standalone флеш-плеером. А особенность проекта заключается в том, что флеш-плеер подгружается в экзшеник как компонент, а внутри уже рулит swf-ками... Так вот флеш-плеер подгружается один раз, и нет возможности его открывать-закрывать...

Старый 02.03.2007, 14:03
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
У тебя класс находится в загружаемом swf?

Старый 02.03.2007, 15:53
island вне форума Посмотреть профиль Отправить личное сообщение для island Посетить домашнюю страницу island Найти все сообщения от island
  № 9  
Ответить с цитированием
island
 
Аватар для island

Регистрация: Jul 2006
Адрес: nsk
Сообщений: 93
Отправить сообщение для island с помощью ICQ
да, класс находится в swf-ке... А разве можно по-другому - в готовую swf подгружать класс?

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

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
а import на что?
__________________
"We Are The Champions My Friends!" Queen

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

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

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


 


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


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