2011-08-26 25 views
0

所以我知道你可以指定一个基类到Movieclips库信息字段中的库定义,但是如果我在库中有30个项目,并且我更改了基类,屁股,当我实例化库定义时,这可以通过编程来完成吗?干杯。为许多库定义分配相同的基类

var new_shiz:MyItem1 = new MyItem1(); // Needs to have a generic base class of MyItem 

回答

0

您是否正在寻找一种方法来抓取它们作为它们的超类? 你可以做到这一点,如果你的库班只是一堆图形:

var new_shiz:Sprite = new MyItem1() as Sprite; 

var new_shiz:MovieClip = new MyItem1() as MovieClip; 

是你正在做什么?

+0

嗨,更多的新MyItem1()作为MyItem(这似乎不工作),所以当我实例MyItem1它会表现为在MyItem类文件中定义多个库项目将共享相同的行为 – woodscreative

+0

是你试图让他们都延续同一班?因为您可以选择一个自定义类作为基类。所以你可以有几个不同的符号来扩展你的基类。只要确保自定义类为符号类型扩展了适当的显示对象类。 –

1

使用Flash CS4,您可以选择库中的多个项目,并为其中的所有项目设置基础类别(通常通过右键单击)。但有时你可能真的需要更高级的方式来自动化一些东西 - 那么JSFL就是你的朋友,而http://www.xjsfl.com/会让你的友谊开心。

-3
// SAVE THIS CODE AS: WHATEVERNAMEYOULIKETOCALLIT.jsfl 

// Now simply open flash, select the items you'd like to change the base class IN THE LIBRARY and double click the script 



/** 
* ... 
* @author Bruno Pavanelli Mestre dos Magos 
*/ 
var lib = fl.getDocumentDOM().library; 
var libSelection = lib.getSelectedItems(); 
var length = libSelection.length; 
var appendix; 
var count = 0; 

Validate(); 

function Validate() 
{ 
    fl.outputPanel.clear(); 
    fl.trace(">>> Change Base Class Name\nThis will change the base class name to every\nselected item in your library."); 

    if(length <= 0) 
    { 
     fl.trace("No objects selected in the library!"); 
     alert("No objects selected in the library!"); 
     return; 
    } 

    appendix = prompt("Choose a name for the base class(ex: flash.display.MovieClip)"); 
    if(appendix == null) 
    { 
     fl.trace("Appendix selection canceled!"); 
     return; 
    } 

    Execute(); 
} 

function Execute() 
{ 

    for(var itemIndex=0; itemIndex < length; itemIndex++) 
    { 
     var theItem = libSelection[itemIndex]; 
     if(theItem.linkageExportForAS) 
      { 
      theItem.linkageBaseClass = appendix; 
      continue; 
     }else{ 
      theItem.linkageExportForAS = true; 
      var wholePackage = appendix.split('.'); 
      var name = wholePackage[wholePackage.length-1]; 
      theItem.linkageClassName = name + itemIndex.toString(); 
      theItem.linkageBaseClass = appendix; 
     } 
     count++; 
    } 

    fl.outputPanel.trace("Process Complete!\n" + count + " base class name(s) modified!"); 
} 
+0

真的? -2?这完全回答了他的问题。 – brunopava

相关问题