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

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

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

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
По умолчанию Компонент List v2. Убить обводку

создается swf с компонентой List и ее стилями и подгружается в другую. при нажатии на элементы списка в первой флешке не видна обводка вокруг компоненты, а во второй видна. Очень хочется чтобы ее вобще не было. пытался обратится к мувикам из которых состоит компонент и убивать их - почему то не получается. Вероятно потому что обращение идет из класса? обращался примерно так: userlist["boundingBox_mс"](я предпологаю что именно этот мувик - обводка) далее пробовал убить визабилити, альфу, унлоадить или ремувнуть - результат одинаковый. отключаю селектейбл - получаю нужный результат, но пропадает отклик на событие чендж. есть предположения у товарищей знатоков?

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
Компонент List v2. Убить обводку
Она бессмертна..(

Старый 13.05.2009, 22:58
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
думаю происходит следующее:
при отрисовке всех этих рамок компонент ищет в _level0 focusManager
в исходной флешке он находит его там - все нормально
но когда флешка с компонентом подгружена в другую, то найти _level0.focusManager ему уже не судьба - все сбивается
если в принимающую флешку вкомпилить этот функционал (достаточно положить в библиотеку любой компонент), то все заработает как закажешь

Старый 14.05.2009, 12:36
incorp вне форума Посмотреть профиль Отправить личное сообщение для incorp Найти все сообщения от incorp
  № 4  
Ответить с цитированием
incorp

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
очень похоже что это действительно как то связано с фокус менеджером. но предложеный способ не работает. можно ли убить его функционал вобще, чтобы точно знать что причина в нем.

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS1/AS2:
focusManager.enabled=false;
не проверял, но предполагаю, что нужно в обоих флешках

Старый 14.05.2009, 15:56
incorp вне форума Посмотреть профиль Отправить личное сообщение для incorp Найти все сообщения от incorp
  № 6  
Ответить с цитированием
incorp

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
я тоже предполагал этот вариант - нет, рамка бессмертна. внутри класса вложеной флешки создается к тому же собственный фокус манагер - но его я тоже сразу по создании, enabled=false; вот такие фокусы фокус манагера. еще один ньюанс, которому я тоже не нашел объяснения - оказывается даже вложеная флешка отлично работает без всяких рамочек, до тех пор пока не используется видоизмененный хинт (конечно ваш, чей же еще) на всякий случай выложу тот вариант хинта что юзается у нас. логики в этом я не вижу. закоменчиваем строку body=_root.createEmptyMovieClip("hint",0xFFFFE); пропадают хинты, зато никаких рамочек.
Код AS1/AS2:
class Hint {
	private static var body:MovieClip;
	public static var intervalID:Number;
	private static var tf:TextField;	
 
	static var hintTextFormat:TextFormat = new TextFormat("_sans", 11, 0xffffff);
	static var DELAY_OFF:Number=3000;
	static var DELAY_ON:Number=100;
	static var bgColor:Number=0x000000; //0x3F4043;
	static var bgAlpha:Number=80;
	static var bgRound:Number=10;
	static var lineWidth:Number=0;
	static var lineColor:Number=0x646567;	
	static var lineAlpha:Number=null;//70;
	static var topPadding:Number=0;
	static var leftPadding:Number=5;
	static var dragEnable:Boolean;
 
	static function show(s:String,timeOut:Number,dragable:Boolean):Void {
		if(!s){
			clear();
			return;
		}
		dragEnable=dragable;
		body.removeMovieClip();
		clearInterval(intervalID);
		intervalID=setInterval(Delegate.create(Hint,create),DELAY_ON,s,timeOut,dragable);
	}
 
 
	static function create(s:String):Void{
 
		body=_root.createEmptyMovieClip("hint",0xFFFFE);
		body.filters=[new DropShadowFilter(2,45,0,0.2)];
		body.onEnterFrame=null;
		body.clear();
		body._txt.removeTextField();
		tf=body.createTextField("_txt",0,leftPadding,topPadding,0,0);
		tf.text=s;
		tf.setTextFormat(hintTextFormat);
		tf.autoSize=true;
		tf.selectable=false;
		//tf.border=true;
		// tf.borderColor=frameColor;
		var w=body._width, h=body._height;
 
		RectDraw.drawRounded(body,  w+leftPadding*2, h+topPadding*2, 5, bgColor, bgAlpha, lineWidth, lineColor, lineAlpha);
 
		var m=_root._xmouse+body._width +10> Stage.width;
		body._x=int(_root._xmouse+(m?-body._width-5:10));
		body._y=_root._ymouse-10;
 
		clearInterval(intervalID);
		intervalID=setInterval(Delegate.create(Hint,clear),DELAY_OFF);
		body.onMouseMove=Delegate.create(Hint,drag);
 
		body._alpha=100;
	}
 
	static function drag():Void	{
		body._alpha-=1;
		//trace(body._alpha);
		if(!dragEnable&&body._alpha<90){
			body.removeMovieClip();
		}
		//body._y=int(_root._ymouse-10);
		//var m=_root._xmouse+body._width +10> Stage.width;
		//body._x=int(_root._xmouse+(m?-body._width-5:10));
	}
 
	static function clear(smooth:Boolean):Void{
		clearInterval(intervalID);
		if(smooth){
			body.onEnterFrame=Delegate.create(Hint,fade);
		}else{
			body.removeMovieClip();
		}
	}
 
	static private function fade(){
		body._alpha-=50;
		if(body._alpha<=0){
			body.removeMovieClip();
		}
	}
 
}

Старый 14.05.2009, 16:56
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
так это в ту же тему, имхо
focusManager акурат на глубине 1048574 (0xFFFFE) и создается, создавая там же болванку для хинтов, убиваем focusManager со всему вытекающими последствиями, т.е. нормальная работа всех этих компонентовских приблуд уже невозможна..
создавай хинт на 0xFFFFB и все будет работать

при подгрузке немного по другому, но с тем же результатом, компонент просто не может создать focusManager (не из чего), если в библиотеку положить какой-нбудь компонент, то все будет штатно.., скорее всего, может быть

зы: а лучше забыть эти компоненты v2 как страшный сон и работать в AS3

ззы по поводу focusManager.enabled=false; - в флешке с самим компонентом, если она полгружается, это ничего не дает - focusManager создается в _level0 плеера, т.е. в руте загружающей флешки это и надо писать


Последний раз редактировалось silin; 14.05.2009 в 17:02.
Старый 14.05.2009, 17:24
incorp вне форума Посмотреть профиль Отправить личное сообщение для incorp Найти все сообщения от incorp
  № 8  
Ответить с цитированием
incorp

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
спасибо большое ура! заработало, теперь все стало ясно. вот на такие мелочи и тратится больше всего времени. если бы начальство решилось переделывать исходники на ас3 я бы руками и ногами был за. Еще раз спасибо.

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

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

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


 


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


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