Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ошибка при загрузке SWF (http://www.flasher.ru/forum/showthread.php?t=145480)

3p.station 09.10.2010 01:41

ошибка при загрузке SWF
 
Всем привет!

Такя ситуация-
гружу лоадером swf , в которой используется класс MyClass, в конструктор которого передается 4 переменных. Отдельно флешка работает, а вот если загружать лоадером ее, то возникает ошибка -
Код AS3:

Argument count mismatch on MyClass(). Expected 0, got 4.

:wacko:

это как лечить, подскажите плиз :)

Добавлено через 6 минут
попробовал сделать инит в классе
Код AS3:

myClass = new MyClass
myClass.init(a,b,c,d)

-
Код AS3:

Error #1006: init is not a function.

мда

Добавлено через 7 минут
разумеется
Код AS3:

public function init(a,b,c,d):void....

в MyClass добавлено

dimarik 09.10.2010 02:14

Во-первых, "конструктор которого" принимает 4 переменных. Теперь разбирайтесь, почему в него эти четыре "переменных" не передаются.

3p.station 09.10.2010 02:25

ок, не переменные, а параметры (устал уже) :o
по поводу конструктора - наверно так нельзя делать, но я делаю (по незнаню, скажите что это так или нет ) и оно работает, правда тока "автономно" сейчас
а что скажете по поводу того что праметры через init тоже не принимаются? вернее он вообще не понимает что есть такая функция :(

dimarik 09.10.2010 02:47

init с полутипизацией. Без типизации остались аргументы. Камильфо отсутствует. Но не это вызывает ошибку. По сути мне нужно глянуть код. Иначе теряюсь в догадках по-поводу "init is not a function".

3p.station 09.10.2010 03:07

Дмитрий - "комильфо" вроде через "о", но аргументы не тпизировал потому что это ж просто пример и класс другое имя имеет и параметры... а вот про полутипизацию не в курсе - нада посмотреть. но функцию и переназывал - таже проблема... Хех
Я тока перешел на Билдер - может там гдето что-то не учел.

ЗЫ хотя конечно даже в примерх надо быть осознанней ...

dimarik 09.10.2010 03:14

3p.station, "камильфо" - это авторское. Написано правильно, не переживайте. Полутипизацией назвал Ваш init, в котором возврат типизирован, а аргументы - нет. Код пока не увидел.

3p.station 09.10.2010 03:40

сорри вообще, за мой ненужный вздор... Спасибо что поправляете :)
итак
прелоадер -
Код AS3:

        [SWF (width="500",height="500",frameRate="100",backgroundColor="0x000000")]
 
        public class mySiteFlowersPreloader extends Sprite
        {
                /* loader */
                private var loader:Loader;
 
                public function mySiteFlowersPreloader()
                {
                        addEventListener(Event.ADDED_TO_STAGE, init);       
                }
 
                /**
                *                                Inits
                */

                private function init(event:Event = null):void
                {
                        ***
                        loadSWF();
 
                }
 
                private function loadSWF():void
                {
                        var FilePath:String = "site/mySite.swf";
                        loader = new Loader();
                        loader.load(new URLRequest(FilePath));
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, initSWF);       
                        loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
 
                }
 
                private function initSWF(event:Event):void
                {
                        var mySWF:Object = event.currentTarget.content;
                        addChild(mySWF as Sprite);
                }
        }
}

далее Мейн класс самой флешки

Код AS3:

        [SWF (width="1220",height="700",frameRate="31",backgroundColor="0x000000")]
 
        public class mySiteFlowers extends Sprite
        {
 
                /* Flower Sprite*/
                private var aboutFlower:Flower;
                private var galleryFlower:Flower;
                private var contactFlower:Flower;
 
                public function mySiteFlowers()
                {
                        trace("My Site @Flowers@");
                        debugger = new MonsterDebugger(this);       
                        addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                /**
                *                                Inits
                */

                private function init(event:Event):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        stage.align = StageAlign.TOP_LEFT;
                        stage.scaleMode = StageScaleMode.NO_SCALE;
 
                        initObjects();
                        initListeners();
                        loadXMLs();
                }
 
                /**
                *                                Objects
                */

                private function initObjects():void
                {
                        aboutFlower = new Flower();
                        aboutFlower.init(videoAboutFlower, RATE, "imageAboutFlower", this);
 
                        galleryFlower = new Flower();
                        galleryFlower.init(videoGalleryFlower, RATE, "imageGalleryFlower", this);
 
                        contactFlower = new Flower();
                        contactFlower.init(videoContactFlower, RATE, "imageContactFlower", this);
 
 
                }
 
                ************

и наконец сам класс Flower
Код AS3:

        public class Flower extends Sprite
        {
 
                /* Video FLV in MovieClip with Animation*/
                private var video:MovieClip;
 
                /* Rate for make Vector Animations*/
                private var RATE:uint = 0;
 
                /* For Images button Control*/
                private var _parent:Sprite;
                private var _image:String;
 
                public function Flower():void
                {
 
                }
 
                /**
                *                Init
                * */

                public function init(video:MovieClip, RATE:uint, _image:String, _parent:Sprite):void
                {
                        this.video = video;
                        this.RATE = RATE;
                        this._parent = _parent;
                        this._image = _image;
 
                        initObjects();
                        initListeners();
                }
                  ******************


вот как то так

спасибо за ваше внимание

Добавлено через 5 минут
Код AS3:

TypeError: Error #1006: init is not a function.


dimarik 09.10.2010 04:01

Подскажите, что такое videoAboutFlower и RATE в "Мэйн" класс
Код AS3:

 aboutFlower.init(videoAboutFlower, RATE, "imageAboutFlower", this);


3p.station 09.10.2010 04:15

Это мувиклипы из SWC в которых видео FLV. RATE - это частота дискртизации (я там эти видео потом перегоняю в Вектор чтобы показывать без тормозов)

Код AS3:

                /* Constants */
                private static const RATE:uint = 7;

Код AS3:

                /* Video */
                private var videoAboutFlower:VideoAboutFlower = new VideoAboutFlower();
                private var videoGalleryFlower:VideoGalleryFlower = new VideoGalleryFlower();
                private var videoContactFlower:VideoContactFlower = new VideoContactFlower();

хочу напомнить что глюк тока когда я эту флешку подгружаю , сама по себе - все работет

dimarik 09.10.2010 04:41

На мой взгляд синтаксически все верно. Количество кадров в сумме, не превышает 16535? Но это из разряда "а по колесам пинал?".


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

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