Flash 动作脚本电影唇彩淡出

Flash 动作脚本电影唇彩淡出,flash,actionscript-3,Flash,Actionscript 3,目前我正在努力解决flash中一些相当简单的问题 想象你有两个电影嘴唇在一起。这两个电影唇中都有相同的电影唇 如果我淡出了顶级电影,我希望看不到任何变化,但出于某种原因,我可以看到淡出发生 这就像动作脚本正在独立地淡出子电影 有人知道怎么避开这个吗?我根本不想看到任何褪色 编辑: I've decided to grab the bitmap data and add that instead. it's not ideal, but does what I was looking for.

目前我正在努力解决flash中一些相当简单的问题

想象你有两个电影嘴唇在一起。这两个电影唇中都有相同的电影唇

如果我淡出了顶级电影,我希望看不到任何变化,但出于某种原因,我可以看到淡出发生

这就像动作脚本正在独立地淡出子电影

有人知道怎么避开这个吗?我根本不想看到任何褪色

编辑:

I've decided to grab the bitmap data and add that instead. it's not ideal, but does what I was looking for.

var format:TextFormat = new TextFormat();
format.size = 100;
format.color = 0xFFFFFF;


// create a red square with text inside
var x:MovieClip = new MovieClip();
x.graphics.beginFill(0xCC0000);
x.graphics.drawRect(0, 0, 400, 400);
x.graphics.endFill();
var x_txt:TextField = new TextField();
x_txt.text = "hello";
x_txt.width = 500;
x_txt.setTextFormat(format);
x.addChild(x_txt);


var xbmpd:BitmapData = new BitmapData(x.width, x.height);
xbmpd.draw(x);
addChild(new Bitmap(xbmpd));


// create a red square with text inside
var y:MovieClip = new MovieClip();
y.graphics.beginFill(0xCC0000);
y.graphics.drawRect(0, 0, 400, 400);
y.graphics.endFill();
var y_txt:TextField = new TextField();
y_txt.text = "hello";
y_txt.width = 500;
y_txt.setTextFormat(format);

y.addChild(y_txt);

var ybmpd:BitmapData = new BitmapData(y.width, y.height);
ybmpd.draw(y);
addChild(new Bitmap(ybmpd));


y.alpha = 0.5;
人们似乎很难想象我在做什么。下面是一个非常简单的代码示例:

var format:TextFormat = new TextFormat();
format.size = 100;
format.color = 0xFFFFFF;

// create a red square with text inside
var x:MovieClip = new MovieClip();
x.graphics.beginFill(0xCC0000);
x.graphics.drawRect(0, 0, 400, 400);
x.graphics.endFill();
var x_txt:TextField = new TextField();
x_txt.text = "hello";
x_txt.width = 500;
x_txt.setTextFormat(format);
x.addChild(x_txt);
addChild(x);


// create a red square with text inside
var y:MovieClip = new MovieClip();
y.graphics.beginFill(0xCC0000);
y.graphics.drawRect(0, 0, 400, 400);
y.graphics.endFill();
var y_txt:TextField = new TextField();
y_txt.text = "hello";
y_txt.width = 500;
y_txt.setTextFormat(format);
y.addChild(y_txt);
addChild(y);

y.alpha = 0.5;
据我所知,显示的文本不应该是纯白色是毫无意义的

相反,它以褪色的白色出现

编辑2:

I've decided to grab the bitmap data and add that instead. it's not ideal, but does what I was looking for.

var format:TextFormat = new TextFormat();
format.size = 100;
format.color = 0xFFFFFF;


// create a red square with text inside
var x:MovieClip = new MovieClip();
x.graphics.beginFill(0xCC0000);
x.graphics.drawRect(0, 0, 400, 400);
x.graphics.endFill();
var x_txt:TextField = new TextField();
x_txt.text = "hello";
x_txt.width = 500;
x_txt.setTextFormat(format);
x.addChild(x_txt);


var xbmpd:BitmapData = new BitmapData(x.width, x.height);
xbmpd.draw(x);
addChild(new Bitmap(xbmpd));


// create a red square with text inside
var y:MovieClip = new MovieClip();
y.graphics.beginFill(0xCC0000);
y.graphics.drawRect(0, 0, 400, 400);
y.graphics.endFill();
var y_txt:TextField = new TextField();
y_txt.text = "hello";
y_txt.width = 500;
y_txt.setTextFormat(format);

y.addChild(y_txt);

var ybmpd:BitmapData = new BitmapData(y.width, y.height);
ybmpd.draw(y);
addChild(new Bitmap(ybmpd));


y.alpha = 0.5;
编辑3:

I've decided to grab the bitmap data and add that instead. it's not ideal, but does what I was looking for.

var format:TextFormat = new TextFormat();
format.size = 100;
format.color = 0xFFFFFF;


// create a red square with text inside
var x:MovieClip = new MovieClip();
x.graphics.beginFill(0xCC0000);
x.graphics.drawRect(0, 0, 400, 400);
x.graphics.endFill();
var x_txt:TextField = new TextField();
x_txt.text = "hello";
x_txt.width = 500;
x_txt.setTextFormat(format);
x.addChild(x_txt);


var xbmpd:BitmapData = new BitmapData(x.width, x.height);
xbmpd.draw(x);
addChild(new Bitmap(xbmpd));


// create a red square with text inside
var y:MovieClip = new MovieClip();
y.graphics.beginFill(0xCC0000);
y.graphics.drawRect(0, 0, 400, 400);
y.graphics.endFill();
var y_txt:TextField = new TextField();
y_txt.text = "hello";
y_txt.width = 500;
y_txt.setTextFormat(format);

y.addChild(y_txt);

var ybmpd:BitmapData = new BitmapData(y.width, y.height);
ybmpd.draw(y);
addChild(new Bitmap(ybmpd));


y.alpha = 0.5;

将blendMode设置为blendMode.Layer似乎可以替代它,这很好。

您是创建两个单独的电影剪辑还是使用同一引用两次?一个movieclip只能有一个父对象,因此如果您喜欢这样做:

容器addChild(mc); 容器addChild(mc)


只有一部电影会存在。这可以解释为什么会看到淡入淡出,因为在淡入淡出的movieclip后面没有movieclip。

问题是movieclip中有两个对象。您必须了解flash如何处理MCs的alpha透明度。y的每个孩子的aplha为0.5。威奇的意思是,通过y的问候,你会看到一点红色。那个红色覆盖着x的问候

可以将红色形状在y方向的可见性设置为false。然后您将看不到淡入淡出。

如果您只希望顶部电影剪辑淡入淡出,而不希望底部电影剪辑顶部出现透明度分层,则可以在应用alpha之前将blendMode更改为Overlay

y、 blendMode=blendMode.OVERLAY;
y.alpha=0.5;


没关系,好像你找到了xD

不,它们是movieclip的单独实例。也许你是在淡化父movieclip?您是否尝试过将movieclips相邻放置以确保两者同时可见?下面是我的问题示例:1)请发布代码,而不是文件-如果人们不必打开另一个程序来查看代码(在我的情况下,我必须在vmware中打开flash),他们可以更快地帮助您。2) url不起作用我已经在时间线上做了,作为问题的一个明确例子,所以无法作为代码来做。这个链接现在应该可以工作了。.swf应该足够清楚。当然,记住你的第二个电影剪辑y也有一个红色背景,红色背景是0.5 alpha,所以它重叠在第一个电影剪辑上。所以如果你在一个电影剪辑上设置alpha,它会将其中的所有单个电影剪辑的alpha都设置为0.5?不仅仅是整件事?你设置alpha的movieclip是一个容器,所以如果你将alpha设置为0.5,它将以0.5的速度淡出显示的内容。内部字母相对于父movieclip容器仍然是1。希望这有意义。。。