在Animate CC中,我可以使用以下代碼從庫中動態地添加MovieClips:
在Animate CC中,我可以使用以下代碼。
var MovieClipName_mc: MovieClipFromLibrary = new MovieClipFromLibrary() 。
stage.addChild(MovieClipName_mc)。
我想改變我正在添加的MovieClip,所以我需要將 "MovieClipFromLibrary "作為一個變數。然而,我似乎不能讓任何東西發揮作用。
我希望我解釋得正確?非常感謝您的幫助。謝謝!
uj5u.com熱心網友回復:
類似于getDefinitionByName(...)方法應該可以作業。
//# setting the vars
var myVar :String = "MovieClipFromLibrary"/span>;
var MovieClipName _mc :Class;
//# 應用變數并添加到螢屏。
MovieClipName_mc = getDefinitionByName( myVar ) as Class;
stage.addChild(MovieClipName_mc)。
你也可以制作一個函式createInstance來處理添加多個變數的問題,就像下面這樣:
實施:
import flash.utils.getDefinitionByName;
function createInstance(avalue:*) :*
{
var C: Class;
if (avalue is Class)
{
C = avalue as Class;
}
else if (avalue是String)
{
// If there is actually a class in library[/span].
// 與所提供的類名,那么
//C將被填充為一個有效的類。
C = getDefinitionByName(aname) as Class;
}
if (C != null)
{
return new C。
}
else C; }
{
return null;
}
使用:
var M:DisplayObject。
//將類的名稱傳為String.。
M = createInstance("MovieClipFromLibrary") 。
if (M != null)
{
stage.addChild(M)。
}
//傳遞類的參考,因為是這樣。
M = createInstance(MovieClipFromLibrary)。
if (M != null)
{
stage.addChild(M)。
請記住,你只能通過這種方式訪問當前SWF的類。如果你想讓它從加載的SWF中獲取東西,你需要設定某種庫管理器,并通過Loader.contentLoaderInfo獲取東西。 adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html#applicationDomain" rel="nofollow noreferrer">applicationDomain.getDefinition(...) 方法。
uj5u.com熱心網友回復:
這段確切的代碼對我來說并不奏效。它給了我一個隱含的強制錯誤。然而,這對我幫助很大,因為這確實有效。
/Get Item from library
var MCName: Class = getDefinitionByName('TEST') as Class;
var MovieClip_mc: MovieClip = new MCName()。
stage.addChild(MovieClip_mc)。
所以非常感謝!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/319513.html
標籤:
