簡體   English   中英

Actionscript Movieclip淡入淡出

[英]Actionscript Movieclip fade

目前,我正在努力解決一些相當簡單的問題。

想象一下,彼此之間有兩個電影剪輯。 這兩個電影剪輯中都具有相同的電影剪輯。

如果淡出頂部的動畫片段,我希望不會有任何變化,但是由於某種原因,我可以看到淡出的發生。

就像動作腳本正在獨立淡出子電影剪輯一樣。

有人知道如何解決這個問題嗎? 我根本不希望看到任何褪色。

編輯:

人們似乎無法想象我遇到的困難。 這是一個非常簡單的代碼示例:

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;

據我所知,顯示的文本不應為純白色是沒有意義的。

相反,它顯示為褪色的白色。 http://www.mikeefranklin.co.uk/Test2.swf

編輯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:

將blendMode設置為BlendMode.Layer似乎可以代替工作,這很好。

如果您只是希望淡出頂部影片剪輯而在底部影片剪輯上方沒有透明層,則可以在應用Alpha之前將blendMode更改為Overlay。

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

沒關系,好​​像您找到它xD

您是要創建兩個單獨的動畫片段還是兩次使用相同的參考? 一個動畫片段只能有一個父母,因此如果您這樣做:

container.addChild(mc); container.addChild(mc);

僅存在一個動畫片段。 那可以解釋為什么您會看到淡入淡出,因為您正在淡出的動畫片段后面沒有任何動畫片段。

問題是MovieClip中有兩個對象。 您必須了解Flash如何處理MC的Alpha透明度。 y的每個子項的aplha為0.5。 wich表示您會在y的問候中看到一點紅色。 而紅色覆蓋了x的問候。

您可以將y中紅色形狀的可見性設置為false。 那么您將不會看到褪色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM