Назначение одного и того же базового класса многим определениям библиотеки - PullRequest
0 голосов
/ 27 августа 2011

Итак, я знаю, что вы можете назначить базовый класс определению библиотеки в информационном поле библиотеки Movieclips, но если у меня есть 30 элементов в библиотеке, и я изменяю базовый класс, это становится проблемой в заднице, это можно сделать программно когда я создаю определение библиотеки? Приветствия.

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

Ответы [ 3 ]

1 голос
/ 27 августа 2011

В Flash CS4 вы можете выбрать несколько элементов в вашей библиотеке и установить базовый класс для всех из них (как обычно, щелкнув правой кнопкой мыши).Но иногда вам действительно может понадобиться более продвинутый способ автоматизации чего-либо - тогда JSFL - ваш друг, и http://www.xjsfl.com/ сделает вашу дружбу счастливой.

0 голосов
/ 11 ноября 2013
// 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 голосов
/ 27 августа 2011

Вы ищете способ захватить их как суперкласс? Вы можете сделать это, если ваш библиотечный класс - это просто набор графики:

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

или

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

Это то, что вы пытаетесь сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...