Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 将同一基类分配给多个库定义_Flash_Actionscript 3 - Fatal编程技术网

Flash 将同一基类分配给多个库定义

Flash 将同一基类分配给多个库定义,flash,actionscript-3,Flash,Actionscript 3,所以我知道你可以在Movieclips library信息字段中为库定义分配一个基类,但是如果我在库中有30个项,并且我更改了基类,这会成为一个麻烦,当我实例化库定义时,这可以通过编程实现吗?干杯 var new_shiz:MyItem1 = new MyItem1(); // Needs to have a generic base class of MyItem 你是否在寻找一种方法来抓住他们作为他们的超类? 如果您的库类只是一组图形,则可以这样做: var new_shiz:Sprit

所以我知道你可以在Movieclips library信息字段中为库定义分配一个基类,但是如果我在库中有30个项,并且我更改了基类,这会成为一个麻烦,当我实例化库定义时,这可以通过编程实现吗?干杯

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

你是否在寻找一种方法来抓住他们作为他们的超类? 如果您的库类只是一组图形,则可以这样做:

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


这就是您要做的吗?

使用Flash CS4,您可以在库中选择多个项目,并为所有项目设置基类(通常通过右键单击)。但有时您可能真的需要更高级的方式来自动化某些东西-那么JSFL就是您的朋友,它会让您的友谊快乐。

//将此代码另存为:WHATEVERNAMEYOULIKETOCALLIT.JSFL
// 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!");
}
//现在只需打开flash,在库中选择要更改基类的项,然后双击脚本 /** * ... *@作者Bruno Pavanelli Mestre dos Magos */ var lib=fl.getDocumentDOM().library; var libSelection=lib.getSelectedItems(); var length=libSelection.length; var附录; var计数=0; 验证(); 函数验证() { fl.outputPanel.clear(); fl.trace(“>>>更改基类名称\n这将更改库中每个\n选定项的基类名称。”);
if(length Hi,更多新的MyItem1()作为MyItem(似乎不起作用)因此,当我实例化MyItem1时,它的行为将与MyItem类文件中的定义相同,多个库项将共享相同的行为。您是否尝试使它们都扩展同一个类?因为您可以选择自定义类作为基类。因此,您可以使用多个不同的符号来扩展您的基类。请确保您自定义了它们类为符号类型扩展了适当的显示对象类。真的吗?-2?这完美地回答了他的问题。
// 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!");
}