as3 загрузка внешнего SWF-файла - PullRequest
0 голосов
/ 10 марта 2019

Я думаю, что может быть проблема, когда я вызываю символ treeGroup.As3 не добавляет его в список отображения?Я получил код для загрузки внешнего SWF-файла из Adobe.У них было более одного метода, поэтому я, вероятно, использовал неправильный.Загрузка внешнего файла приводит к ошибке, которую вы видите на снимке экрана.Код там тоже есть.Этот файл работает нормально, без ошибок, и когда я загружаю SWF-файл в другой файл, в нем отображается ошибкаЯ также могу видеть и изменять местоположения X и Y в загруженном фильме, но он не работает.Таким образом, он загружен, но выглядит для меня, что может быть проблема с добавлением в список отображения или может быть причиной того, что я использую MovieClip (root), потому что в строке 12 я впервые использую это.Я должен сделать это так, потому что мне нужно использовать setChildIndex.Если есть другой способ, я не смог бы вызвать символ из библиотеки и все будет в порядке.

Основное меню игры - главное кино.Другой файл, в который я хочу загрузить, является первым отверстием для этой игры в гольф, которую я делаю.

Вот ссылка на Adobe, и я использовал первый метод, который они перечислили.https://helpx.adobe.com/flash/kb/load-external-swf-swf.html

Я могу предоставить весь код для обоих файлов SWF, если вам нужна дополнительная информация.

Код ошибки: ArgumentError: Ошибка № 2005: Параметр 0 имеет неправильный тип.Должен быть тип BitmapData.в flash.display :: BitmapData / hitTest () в Hole1_fla :: Symbol2_1 / treeDetect () [Hole1_fla.Symbol2_1 :: frame1: 12]

это то, как я загружаю swf.

var myLoader:Loader = new Loader();                     // create a new instance of the Loader class
var url:URLRequest = new URLRequest("Hole1.swf"); // in this case both SWFs are in the same folder 
myLoader.load(url);  

И я думаю, что проблема заключается в коде в символе.

    var tree1:treeGroup = new treeGroup();
addChild(tree1);
setChildIndex(tree1,15);
var tree1Rect:Rectangle = tree1.getBounds(this);
var tree1ClipBmpData = new BitmapData(tree1Rect.width, tree1Rect.height, true, 0);
tree1ClipBmpData.draw(tree1);

addEventListener(Event.ENTER_FRAME,treeDetect);

function treeDetect(event:Event) {
    // code for trees to detect if we hit some trees
    if (tree1ClipBmpData.hitTest(new Point(tree1.x, tree1.y),255,MovieClip(root).ballClipBmpData,new Point(MovieClip(root).backhole1.golfball.x, MovieClip(root).backhole1.golfball.y),255)) { // this is line 12 poping the error in the symbol that is in the swf im loading in.
        if (MovieClip(root).backhole1.golfball.scaleX == .1 && MovieClip(root).backhole1.golfball.scaleY == .1) {
            setChildIndex(tree1,17);
            if (MovieClip(root).backhole1.golfball.scaleX >= .3 && MovieClip(root).backhole1.golfball.scaleY >= .3) {
                MovieClip(root).friction = .05;
            }
        }
        if (MovieClip(root).backhole1.golfball.scaleX <= .3 && MovieClip(root).backhole1.golfball.scaleY <= .3) {
            if (MovieClip(root).goingDown == 1) {
                MovieClip(root).friction = .08;
                setChildIndex(tree1,17);
                MovieClip(root).backhole1.golfball.scaleX = .1;
                MovieClip(root).backhole1.golfball.scaleY = .1;
                MovieClip(root).goingDown = 0;
            }
        }
    } else {
        setChildIndex(tree1,15);

    }
}

Где первый MovieClip (root) находится в hitTest, это строка 12, которая выдает сообщение об ошибке и происходит каждый кадр.

...