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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.01.2012, 14:47
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 11  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
А вешаться на события на мягких ссылках не стоит по одной причине:
- все время, пока GС будет добираться до объекта - объект будет исправно обрабатывать события - грузить проц тобишь.
Откуда такая информация? Мягкие ссылки - одна из рекомендаций адоба.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 30.01.2012, 14:48
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 12  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
Ребят, всем спасибо за ответы. У меня вопрос по стилю ведения проекта (чтобы новой темы не создавать). Я как-то от C++ приучился. Вот главным классом у меня всегда является main.as, он не лежит ни в каком пространстве имён. Далее я решил создать пакет Game и в него впихнуть класс Game. Получилось вот так:

Код:
Game/Game.as
main.as
Но при создании объекта Game в классе main приходится писать так:

Код AS3:
var game:Game=new Game.Game();
Работаю в FlashDevelop и тут каждая папка как пакет получается. Может стоит писать так:

Код:
Game/...
Game.as
main.as
Или это тоже какие-то подводные камни несёт? А то у меня сложилось такое впечатление, что лучше не называть пакеты такими же названиями как имена классов. Так ли это?

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
s3dworld
Цитата:
чтобы новой темы не создавать
На форуме правило - один вопрос, одна тема.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 30.01.2012, 14:52
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 14  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
Извиняюсь, создаю новую тему...

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от TanaTiX Посмотреть сообщение
Откуда такая информация? Мягкие ссылки - одна из рекомендаций адоба.
Думаю, имеется в виду что GC не сразу удалит слушатель в виду соображений что памяти достаточно. Вот слушатель и будет сидеть в памяти, не влияя на нее. А вот на проц будет грузить, потому что слушатель будет все время выполняться, пока GC не увидит что памяти мало и не удалит его.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 30.01.2012, 15:00
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 16  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Мягкие ссылки не отменяют отписывание от событий.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Согласен. Лично я не всегда доверяю мягким ссылкам и отписываюсь от событий в явном виде. А что - перестраховаться не помешает. Это вырабатывает привычку, чтобы потом не искать утечки.
__________________
Я мало чего умею, но зато хорошо умею учиться...


Последний раз редактировалось HardCoder; 30.01.2012 в 15:12.
Старый 30.01.2012, 15:38
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 18  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Цитата:
А вешаться на события на мягких ссылках не стоит по одной причине:
- все время, пока GС будет добираться до объекта - объект будет исправно обрабатывать события - грузить проц тобишь.

Откуда такая информация? Мягкие ссылки - одна из рекомендаций адоба.
Это не информация - это чистая логика: "Отписываться лучше, чем не отписываться с мягкими ссылками".

Да, с мягкими оно надежнее - вдруг не отпишешься - хотя бы GC пусть и через некоторое время, но снесёт.

Однако это напоминает выдачу парашютов пилотам пассажирского лайнера - а чё? - на пару жертв меньше зато будет.
Ведь если вы забыли отписаться и ссылка была _не_ мягкой - это обнаружить будет проще, чем если бы ссылка была мягкой. Подход спорный, на абсолютную истинность не претендую.

А слушать или не слушать Adobe - это зависит от Вашего подхода к управлению памятью в приложении в целом.


Последний раз редактировалось expl; 30.01.2012 в 15:44.
Старый 30.01.2012, 15:49
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 19  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Цитата:
Код AS3:
public function main()
		{
			if(stage)
			{
				Start();
			}
			else
			{
				isAddedToStageListener=true;
				addEventListener(Event.ADDED_TO_STAGE,OnAddedToStage);
			}
		}
Неизвестно, откуда это пошло, но это условие абсолютно лишнее.
Да, в конструкторе класса приложения переменная stage доступна, но ADDED_TO_STAGE сработает в любом случае после конструктора, поэтому достаточно написать так:

Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.events.Event;
 
	public class main extends MovieClip
	{
		public function main()
		{
			addEventListener(Event.ADDED_TO_STAGE,OnAddedToStage);
		}
 
		private function OnAddedToStage(_event:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE,OnAddedToStage);
			Start();
		}
 
		private function Start():void
		{
 
		}
 	}
 }
__________________
aka doctorstal

Старый 30.01.2012, 15:52
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 20  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
Отписываться лучше, чем не отписываться с мягкими ссылками
Повторюсь
Цитата:
Мягкие ссылки не отменяют отписывание от событий.
Я всегда (где это возможно) использую мягкие ссылки И отписываюсь от событий.
Цитата:
А слушать или не слушать Adobe - это зависит от Вашего подхода к управлению памятью в приложении в целом.
Да, к рекомендациям адоба можно (а порой и нужно) относиться критично, но ИМХО не в данном случае.
Цитата:
Ведь если вы забыли отписаться и ссылка была _не_ мягкой - это обнаружить будет проще, чем если бы ссылка была мягкой.
А если не отписался и ссылка не мягкая когда и на каком этапе обнаружишь ошибку?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

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

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


 


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


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