Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Adobe Flash ошибка 2136 (http://www.flasher.ru/forum/showthread.php?t=173969)

Quantum2010 15.01.2012 10:32

Adobe Flash ошибка 2136
 
Код:

Error: Error #2136: SWF-файл file:///C|/Documents%20and%20Settings/Admin/Рабочий%20стол/Preloader/Preloader.swf содержит недопустимые данные.
        at Menu/addButtons()
        at Menu()
        at Game/frame2()
        at flash.display::MovieClip/gotoAndStop()
        at Game/goToMenuAndStop()
        at Function/http://adobe.com/AS3/2006/builtin::apply()
        at com.greensock.core::TweenCore/complete()
        at com.greensock::TweenLite/renderTime()
        at com.greensock.core::SimpleTimeline/renderTime()
        at com.greensock::TweenLite$/updateAll()

Не могу разобраться с данной ошибкой!
Появляется когда вызывается функция добавления кнопок на сцену.
Вот данная функция:
Код:

function addButtons():void {
                    var btnP:SimpleButton = new btnPlay();
                    var btnSL:SimpleButton = new btnSelectLevel();
                    var btnQ:SimpleButton = new btnQuit();
                    var btnMG:SimpleButton = new btnMoreGames();
                    var btnI:SimpleButton = new btnInstructions();
                    var btnE:SimpleButton = new btnEditors();
                       
                        btnP.x = 275;
                        btnP.y = 10;
                        btnSL.x = 272;
                        btnSL.y = 10;
                        btnQ.x = 275;
                        btnQ.y = 10;
                        btnMG.x = 272;
                        btnMG.y = 10;
                        btnI.x = 272;
                        btnI.y = 10;
                        btnE.x = 275;
                        btnE.y = 10;
                       
                        Game.gameLink.addChild(btnP);
                        Game.gameLink.addChild(btnSL);
                        Game.gameLink.addChild(btnQ);
                        Game.gameLink.addChild(btnMG);
                        Game.gameLink.addChild(btnI);
                        Game.gameLink.addChild(btnE);
                        addMovePlay();
                        function addMovePlay():void {
                                TweenLite.to(btnP, 0.3, {x:180, y:170, ease:Elastic.easeOut, onComplete:addMoveSelectLevel});
                        }


                        function addMoveSelectLevel():void {
                                TweenLite.to(btnSL, 0.3, {x:235, y:170, ease:Elastic.easeOut, onComplete:addMoveMoreGames});
                        }

                        function addMoveMoreGames():void {
                                TweenLite.to(btnMG, 0.3, {x:270, y:170, ease:Elastic.easeOut, onComplete:addMoveInstructions});
                        }

                        function addMoveInstructions():void {
                                TweenLite.to(btnI, 0.3, {x:325, y:170, ease:Elastic.easeOut, onComplete:addMoveEditors});
                        }

                        function addMoveEditors():void {
                                TweenLite.to(btnE, 0.3, {x:385, y:170, ease:Elastic.easeOut, onComplete:addMoveQuit});
                        }

                        function addMoveQuit():void {
                                TweenLite.to(btnQ, 1, {x:280, y:217, ease:Elastic.easeOut});
                        }


                }

Даже не догадываюсь где может быть ошибка!!!

silin 15.01.2012 12:45

попробуй просто переехать из папки [Рабочий стол] в какую-нибудь 'нормальную', без пробелов и кириллических символов
вроде в последних версиях нет этого косяка, но раньше это было критично

Quantum2010 16.01.2012 02:46

Не помогло!((Может еще какие предположения есть!?

Dukobpa3 16.01.2012 02:49

А нефиг вложенные функции использовать.
Для начала от этого избавиться, а потом поглядим.

Quantum2010 16.01.2012 02:54

Хорошо! Попробуем!

Добавлено через 4 минуты
Короче не в функциях дело! Как я понял, дело в объявлении переменных! Только не пойму, что может быть не так! Через аналогичную функцию в другом классе все норм добавляется!

Dukobpa3 16.01.2012 03:01

Новый код покажи а там поглядим.
Возможно дело НЕ ТОЛЬКО во вложенных функциях. Но трейсбек явно написал тебе что проблема связана с твином. А твины все были во вложенных функциях.

Quantum2010 16.01.2012 03:13

Код:

function addButtons():void {

                        var btnP:btnPlay = new btnPlay();
                        var btnSL:btnSelectLevel = new btnSelectLevel();
                        var btnQ:btnQuit = new btnQuit();
                        var btnMG:btnMoreGames = new btnMoreGames();
                        var btnI:btnInstructions = new btnInstructions();
                        var btnE:btnEditors = new btnEditors();


                        btnP.x = 275;
                        btnP.y = 10;
                        btnSL.x = 272;
                        btnSL.y = 10;
                        btnQ.x = 275;
                        btnQ.y = 10;
                        btnMG.x = 272;
                        btnMG.y = 10;
                        btnI.x = 272;
                        btnI.y = 10;
                        btnE.x = 275;
                        btnE.y = 10;

                        Game.gameLink.addChild(btnP);
                        Game.gameLink.addChild(btnSL);
                        Game.gameLink.addChild(btnQ);
                        Game.gameLink.addChild(btnMG);
                        Game.gameLink.addChild(btnI);
                        Game.gameLink.addChild(btnE);
                       
                }

Я вообще удалил твины полностью(даже не импортирую)! А ошибка все та же! Но если удалить данную функцию, то все норм! ХЗ что это.(А прикол еще вот в чем, перестало разрешать объявлять данные переменные как SimpleButton, тоже хз почему!!!

Dukobpa3 16.01.2012 03:25

Ошибку покажи. А еще лучше исходник всего проекта.

Quantum2010 16.01.2012 03:40

Код:

package {
        import Box2D.Dynamics.*;
        import Box2D.Common.Math.b2Vec2;
        import Box2D.Collision.b2AABB;
        import Box2D.Collision.Shapes.*;
        import flash.display.MovieClip;
        import flash.display.StageScaleMode;
        import flash.display.SimpleButton;
        import flash.display.Sprite;
        import flash.events.ProgressEvent;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.text.TextField;


        public class Menu extends MovieClip {

                //физический мир
                public var e:MouseEvent;
       
                public var btnP:SimpleButton = new btnPlay();
                public var btnQ:SimpleButton = new btnQuit();
                public var btnSL:SimpleButton = new btnSelectLevel();
                public var btnMG:SimpleButton = new btnMoreGames();
                public var btnI:SimpleButton = new btnInstructions();
                public var btnE:SimpleButton = new btnEditors();
               
                public var mcKey1:musicKey1 = new musicKey1();
                public var mcKey2:musicKey2 = new musicKey2();
                public var mcDynamic1:dynamic1 = new dynamic1();
                public var mcDynamic2:dynamic2 = new dynamic2();
                public var mc:box = new box();
                public var m_world:b2World;
                public var m_iterations:int = 10;
                public var m_timeStep:Number = 1 / 30;
                public var m_physScale:Number = 30;
                public var xcoord = 1 / 30;
                public var ycoord = 1 / 30;

                public function Menu():void {
                        //рамки физмира
                        var worldAABB:b2AABB = new b2AABB();
                        worldAABB.lowerBound.Set(-1000.0, -1000.0);
                        worldAABB.upperBound.Set(1000.0, 1000.0);
                        //вектор гравитации
                        var gravity:b2Vec2 = new b2Vec2(0.0,18.0);
                        var doSleep:Boolean = true;
                        m_world = new b2World(worldAABB,gravity,doSleep);
                        //создаем статическую планку
                        addFon();
                        addForm();
                        addMusicKey1(e);
                        addDynamic1(e);
                        addNazva();
                        addAllButtons();
                        addLetter(false);
                        //запускаем обновление мира
                        addEventListener(Event.ENTER_FRAME, Update);
                }
                //счетчик для частоты выпадения кирпичей
                var zt:int = 0;
                //частота выпадения кирпичей (больше - реже)
                var q:int = 10;

                //обновление мира
                function Update(e:Event) {
                        //выпадаем кирпич
                        if (zt > q) {
                                zt = 0;
                                addLetter(true);
                        }
                        //приращиваем счетчик выпадения кирпичей
                        zt++;
                        //"делаем шаг" физического мира - тут рассчитываются положения физических тел
                        m_world.Step(m_timeStep, m_iterations);
                        //пробегаем по всем физическим телам и двигаем их мувики на свои места
                        //"их мувики" храним в пользовательских данных тела
                        for (var bb:b2Body = m_world.m_bodyList; bb; bb = bb.m_next) {
                                if (bb.m_userData is Sprite && ! bb.IsStatic()) {
                                        bb.m_userData.x = bb.GetPosition().x * m_physScale;//X
                                        bb.m_userData.y = bb.GetPosition().y * m_physScale;//Y
                                        bb.m_userData.rotation = bb.GetAngle() * (180/Math.PI);//поворот
                                }
                                //если тело за пределами экрана - убиваем его и его мувик
                                if (bb.GetPosition().y > 14 && bb.m_userData is Sprite) {
                                        Game.gameLink.removeChild(bb.m_userData as Sprite);
                                        m_world.DestroyBody(bb);
                                }
                        }
                }
                //функция добавления кнопок управления игрой.
                function addAllButtons():void {
                       
                }
                //функция добавления скрипичного ключа(1).
                function addMusicKey1(e:MouseEvent):void {
                        trace("Работает 1");
                        mcKey1.x = 155;
                        mcKey1.y = 270;
                        Game.gameLink.addChild(mcKey1);
                }
                //функция добавления скрипичного ключа(2).
                function addMusicKey2(e:MouseEvent):void {
                        trace("Работает 2");
                        Game.gameLink.removeChild(mcKey1);
                        mcKey2.x = 155;
                        mcKey2.y = 270;
                        Game.gameLink.addChild(mcKey2);
                }
                //функция добавления динамика(1).
                function addDynamic1(e:MouseEvent):void {
                        trace("Работает 1 дин");
                        mcDynamic1.x = 389;
                        mcDynamic1.y = 270;
                        Game.gameLink.addChild(mcDynamic1);
                }
                //функция добавления динамика(2).
                function addDynamic2(e:MouseEvent):void {
                        trace("Работает 2 дин");
                        Game.gameLink.removeChild(mcDynamic1);
                        mcDynamic2.x = 389;
                        mcDynamic2.y = 270;
                        Game.gameLink.addChild(mcDynamic2);
                }
                //функция добавления названия игры.
                function addNazva():void {
                        var mc:nazva = new nazva();
                        mc.x = 272;
                        mc.y = 172;
                        Game.gameLink.addChild(mc);
                }
                //функция добавления фона
                function addFon():void {
                        var mc:blackFon = new blackFon();
                        mc.x = 275;
                        mc.y = 200;
                        Game.gameLink.addChild(mc);
                }
                //функция добавления статического тела меню
                function addForm():void {
                        var body:b2Body;
                        var bodyDef:b2BodyDef = new b2BodyDef();

                        var boxDef:b2PolygonDef = new b2PolygonDef();
                        var mc:mainMenu = new mainMenu();


                        mc.x = 275;
                        mc.y = 200;
                        bodyDef.position.x = mc.x * xcoord;
                        bodyDef.position.y = mc.y * ycoord;

                        //создаем тело - прямоугольник. Физическое тело будет чутка меньше мувика - для реализьма.
                        boxDef.SetAsBox((mc.width-2)/m_physScale/2, (mc.height-2)/m_physScale/2);
                        //в пользовательские данные тела запихиваем мувик
                        bodyDef.userData = mc;
                        //создаем тело
                        body = m_world.CreateBody(bodyDef);
                        //придаем ему форму
                        body.CreateShape(boxDef);
                        //офизичиваем тело на основе данных о массе и форме
                        body.SetMassFromShapes();
                        //для лучшего определения столкновений ставим true. Увлекаться этим параметром не рекомендуется - если тел много, будут тормоза
                        body.SetBullet(true);
                        //добавляем мувик тела на сцену
                        Game.gameLink.addChild(mc);
                }
                //функция добавления мячика
                function addLetter(l:Boolean) {
                        if (l) {
                                //тело
                                var body:b2Body;
                                //определитель тела
                                var bodyDef:b2BodyDef = new b2BodyDef();
                                //форма тела
                                var boxDef:b2CircleDef = new b2CircleDef();
                                //мувик тела
                                var mc:box = new box();
                                //и кладем определитель тела где-нибудь чуть выше верхнего предела экрана
                                bodyDef.position.x = Math.random() * 10 + 4;
                                bodyDef.position.y = -1;
                                //если делаем кирпич - задаем плотность, трение, "прыгучесть" тела
                                //не задаем, если - планка, в этом случае тело будет статическим
                                boxDef.radius = 0.48;
                                boxDef.density = 0.3;
                                boxDef.friction = 0.5;
                                boxDef.restitution = 0.7;
                                //в пользовательские данные тела запихиваем мувик
                                bodyDef.userData = mc;
                                //создаем тело
                                body = m_world.CreateBody(bodyDef);
                                //придаем ему форму
                                body.CreateShape(boxDef);
                                //офизичиваем тело на основе данных о массе и форме
                                body.SetMassFromShapes();
                                //для лучшего определения столкновений ставим true. Увлекаться этим параметром не рекомендуется - если тел много, будут тормоза
                                body.SetBullet(true);
                                //добавляем мувик тела на сцену
                                Game.gameLink.addChild(mc);
                        }
                }
        }
}

А вот какие ошибки выдает:
Код:

1067: Неявное приведение значения типа btnQuit к несоответствующему типу flash.display:SimpleButton.
1067: Неявное приведение значения типа btnSelectLevel к несоответствующему типу flash.display:SimpleButton.
1067: Неявное приведение значения типа btnMoreGames к несоответствующему типу flash.display:SimpleButton.
1067: Неявное приведение значения типа btnInstructions к несоответствующему типу flash.display:SimpleButton.
1067: Неявное приведение значения типа btnEditors к несоответствующему типу flash.display:SimpleButton.

Смысл ошибок я понимаю!!!Неявное приведение, но ведь это кнопки и базовый класс стоит SimpleButton!!!Что за глюк? С Флешем проблем быть не может?

Dukobpa3 16.01.2012 03:45

ну сделай там
Код AS3:

public var btnP:SimpleButton = new btnPlay() as SimpleButton;

Должно проканать.


Часовой пояс GMT +4, время: 19:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.