Я пытаюсь сделать небольшой проект для своего класса, и хотя я знаю, как это сделать, я бы предпочел сделать это более интуитивным способом, чтобы я мог избежать копирования и вставки нагрузки по сути, тот же код. Идея состоит в том, чтобы иметь функцию, которая создаст экземпляр объекта класса с его собственным уникальным именем, задает его положение/размер/и т. Д., А затем добавит его на сцену. Глядя на это (то, что у меня есть сейчас) может немного помочь.Как я могу создать функцию для создания дочернего элемента объекта в библиотеке на основе предоставленных переменных?
//Set up variables for all deco pieces
var decoGreen:GreenBall;
var decoRed:RedBall;
var decoStar:Star;
var decoFlower:Flower1;
var decoYellow:YellowBall;
var decoBlue:BlueBall;
//Functions to allow easier object placement
function makeDeco(posX:Number, posY:Number, decoName:String, rootClass:Object):void
{
decoName = new (rootClass)();
decoName.x = posX;
decoName.y = posY;
addChild((decoName));
}
makeDeco(90,320,"greenBall",GreenBall)
Теперь, очевидно, этот код не работает, и сейчас это довольно грубо, но я думаю, что это достаточно, чтобы понять, что я пытаюсь достичь здесь. Спасибо всем, кто пытается расшифровать мой беспорядок! : D
Это имеет смысл, однако я все еще не могу заставить его работать, не бросая мне ошибки. Что эта ошибка пытается мне сказать? (Я запустил код выше). 'ReferenceError: Ошибка # 1065: Variable decoGreen не определен. \t на глобальном/flash.utils :: getDefinitionByName() \t в ChristmasDecorationFSt_fla :: MainTimeline/makeDeco() \t в ChristmasDecorationFSt_fla :: MainTimeline/frame1() ' – user1849935
у вас есть клип под названием "decoGreen" в библиотеке ? – Ronnie
, а не фактическое имя, но связь AS скорее должна быть названа 'decoGreen' – Ronnie