Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   TypeError: Error #1007, подскажите как избежать ошибки (http://www.flasher.ru/forum/showthread.php?t=131342)

Furinax 18.10.2009 22:42

да но проблем:) жизнь прекрасна :yahoo:

dimarik 18.10.2009 22:48

Здесь есть небольшое правило. Получилось - поделись.

Furinax 19.10.2009 12:11

Написал две функции: одна создает объекты SubBtn, а вторая переменные. Обе в конце записывают значения в массив. А в функции addSubBtns почти никаких изменений. Все работает как мне надо.
P.S.: сразу не догадался выложить что получилось, так как после того как увидел написанный вами код, подумал:"нафиг свой детский выкладывать" :)
Код AS3:

package forpage {
        import flash.display.MovieClip;
        import flash.display.SimpleButton;
        import flash.utils.Timer;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.events.TimerEvent;
 
        public class WorkGalary extends MovieClip {
 
                public var opened:Boolean;
                private var localTimer1:Timer;
                private var localTimer2:Timer;
                private var delay:uint;
                private var repeatCount:uint;
                private var subBtnVar:Array;
                private var subBtnObject:Array;
                private var subBtnX:Array;
                private var subBtnY:Array;
                private var index:Number
                private var win:MovieClip;
 
                public function WorkGalary (winSymbol:MovieClip) {
                        index = -1;
                        creatSubBtnObjects();
                        createSubBtnVars();
                        subBtnX = [70, 70, 70, 355, 725];
                        subBtnY = [100, 130, 160, 100, 100];
                        delay = 700;
                        repeatCount = 5;
                        opened = true;
                        win = winSymbol;
                        addChild (win);
                        localTimer1 = new Timer (delay, repeatCount);
                        localTimer1.addEventListener(TimerEvent.TIMER, localTimer1Handler);
                        localTimer1.start();
                };
 
                private function creatSubBtnObjects():void {
                        var btn1 = new SubBtn1;
                        var btn2 = new SubBtn2;
                        var btn3 = new SubBtn3;
                        var btn4 = new SubBtn4;
                        var btn5 = new SubBtn5;
                        subBtnObject = [btn1, btn2, btn3, btn4, btn5];
                };
 
                private function createSubBtnVars():void {
                        var btn1:SimpleButton;
                        var btn2:SimpleButton;
                        var btn3:SimpleButton;
                        var btn4:SimpleButton;
                        var btn5:SimpleButton;
                        subBtnVar = [btn1, btn2, btn3, btn4, btn5];
                };
 
                public function makeRew ():void {
                        localTimer2 = new Timer (100, 1);
                        localTimer2.addEventListener(TimerEvent.TIMER, localTimer2Handler);
                        localTimer2.start();
                        win.addEventListener (Event.ENTER_FRAME, reverse);
                };
 
                public function reverse (e:Event):void {
                        if (win == null) {
                                throw new Error ("Symbol not defined");
                        };
                        try {
                        win.prevFrame ();
                        if (win.currentFrame == 1) {
                                win.removeEventListener (Event.ENTER_FRAME, reverse);
                                opened = false;
                                parent.removeChild (this);
                                };
                        };
                        catch (errObject:Error) {
                                trace ("The message is: " + errObject.message);
                        };
                };
 
                private function localTimer1Handler (e:TimerEvent):void {
                        index++
                        addSubBtns(index, subBtnX[index], subBtnY[index]);
                };
 
                private function localTimer2Handler (e:TimerEvent):void {
                        removeSubBtns();
                };
 
                private function addSubBtns (index:Number, X:Number, Y:Number):void {
                        var newX = X;
                        var newY = Y;
                        subBtnVar[index] = subBtnObject[index];
                        subBtnVar[index].x = newX;
                        subBtnVar[index].y = newY;
                        addChild(subBtnVar[index]);
                };
 
                private function removeSubBtns ():void {
                        for (;numChildren > 1;) {
                                removeChildAt(1);
                        };
                };
        }
}


ratin 30.10.2009 06:20

dimarik, спасибо за
Код AS3:

var c:Class = getDefinitionByName("SubBtn" + index) as Class;

очень помогло)

dimarik 30.10.2009 10:06

Хех. И Вам спасибо за добрые слова =)


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

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