Показать сообщение отдельно
Старый 05.07.2007, 17:38
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 1  
Ответить с цитированием
Torero
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
По умолчанию Маска не перетаскивается вместе с клипом в котором она расположена.

Добрый день.
Что хотел: Динамически создать перетаскиваемую размытую маску с расположенным поверх нее мувиком(текст+изображение).
Что делал:
1.Создал в отдельном мувике Bitmap сцены, применил к нему blur.
2.Создал мувик(holder_mc) в который поместил: а)маску(m_mc) вышеупомянутого клипа; б)мувик в котором буду выводить текст поверх маски.
В чем проблема:
Неадекватно срабатывает код
Код:
	m_mc.onPress=function(){_parent.startDrag();}
	m_mc.onRelease=function(){_parent.stopDrag();}
причем:
1.проблемы начинаются именно после того, как указываю m_mc в качестве маски.
2.судя по поведению курсора, (useHandCursor), маскирующий мувик передвигается вместе с родительским, но на экране, при этом, его положение не меняется.((

Кто-нибудь сталкивался с подобным? Это баг или моя ошибка? Что делать?


-------------------------------
Если поможет, вот реальный код:
Код:
import mx.core.UIObject;
import flash.filters.*;
import flash.display.*;
class classes.test extends UIObject{

		private var a:MovieClip;//размытый фон
		private var b:MovieClip;//затемнение реального фона
		private var c:MovieClip;//маска для размытого фона
		private var d:MovieClip;//холдер маски
		private var e:MovieClip;//нечто, лежащее поверх маски(текст, поля ввода и т.п.)
		private var fonBmp:BitmapData;

	public function test(){
		fonBmp=new BitmapData(Stage.width,Stage.height);
			fonBmp.draw(_root);
		a=this.createEmptyMovieClip("a",1);
			a.attachBitmap(fonBmp,a.getNextHighestDepth());
			a.cacheAsBitmap = true;
			a.filters=[new BlurFilter(5,5)];
		b=this.createEmptyMovieClip("b",this.getNextHighestDepth());
			b.beginFill(0xDDDFCD,60);
			b.lineStyle(0,0xff0000);
			b.lineTo(Stage.width,0);
			b.lineTo(Stage.width,Stage.height);
			b.lineTo(0,Stage.height);
			b.endFill();
		d=this.createEmptyMovieClip("d",this.getNextHighestDepth());		
		e=d.createEmptyMovieClip("e",d.getNextHighestDepth());
			e.lineStyle(20,0xff0000);
			e.lineTo(50,100);
		c=d.createEmptyMovieClip("c",d.getNextHighestDepth());
			c.lineStyle(0,0xff0000);
			c.beginFill(0x006655);
			c.lineTo(200,0);
			c.lineTo(200,100);
			c.lineTo(0,100);
			c.endFill();
			c._parent._x=d._y=150;
		a.setMask(c);
			b.swapDepths(a);
			b.cacheAsBitmap = true;
//		trace("Depth.   A: "+a.getDepth()+"   B:"+b.getDepth()+"  C:"+c.getDepth()+"  E:"+e.getDepth());
			c.onPress=function(){_parent.startDrag();}
			c.onRelease=function(){_parent.stopDrag();}
	}
}


Последний раз редактировалось Torero; 05.07.2007 в 18:57.