0
package  {

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent; 
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.text.StyleSheet; 
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.text.TextFormat;
    import flash.text.*
    import flash.net.*


    public class SpeechBox extends MovieClip{

        public var textLoader:URLLoader = new URLLoader();
        public var box:Sprite = new Sprite();
        public var nextBox:Sprite = new Sprite();
        private var nextText:TextField = new TextField();
        private var textBox:TextField = new TextField();
        private var speechText:String;
        public var _speechBoxCheck:Timer = new Timer(1000);
        public var clickedNext:Boolean = false;

        public function SpeechBox() 
        {
            textLoader.addEventListener(Event.COMPLETE, onLoaded);
            textBox.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownScroll); 
            _speechBoxCheck.addEventListener(TimerEvent.TIMER, speechBoxCheck);
            _speechBoxCheck.start();
            //////////////////SPEECH BOX///////////////////
            box.graphics.lineStyle(3.5,0xffffff);
            box.graphics.beginFill(0x003366, .35);
            box.graphics.drawRoundRect(0,0,650,145,20);
            box.graphics.endFill();
            box.x = 100;
            box.y = 450;
            addChild(box);
            //////////////////SPEECH TEXT///////////////////
            var speechFont = new DataText();
            var textFormat:TextFormat = new TextFormat(); 
            textFormat.font = speechFont.fontName;
            textFormat.align = TextFormatAlign.LEFT;
            textFormat.leading = 3;
            textFormat.color = 0xFFFFFF;
            textFormat.size = 16; 

            textBox.defaultTextFormat = textFormat;
            textBox.width = 620; 
            textBox.height = 115; 
            textBox.x = box.x + 14;
            textBox.y = box.y + 14;
            textBox.multiline = true; 
            textBox.wordWrap = true; 
            textBox.selectable = false;
            addChild(textBox);
            //////////////////NEXT BUTTON///////////////////
            nextBox.graphics.beginFill(0x000000, 0);
            nextBox.graphics.drawRect(0,0,50,30);
            nextBox.graphics.endFill();
            nextBox.x = box.x + 600;
            nextBox.y = box.y + 115;
            nextText.defaultTextFormat = textFormat;
            nextText.text = "Next";
            nextText.textColor = 0xffffff;
            nextText.autoSize = "left";
            nextText.selectable = false;
            nextText.mouseEnabled = false;
            nextText.x = nextBox.x + 2
            nextText.y = nextBox.y + 5
            nextBox.buttonMode = true;
            //nextBox.mouseEnabled = true;

            nextBox.addEventListener(MouseEvent.MOUSE_DOWN, clickNext);
            nextBox.addEventListener(MouseEvent.MOUSE_OVER, moveOver);
            nextBox.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
        }
        function onLoaded(e:Event):void {
            trace(e.target.data);
            textBox.text = e.target.data;
        }
        function mouseDownScroll(event:MouseEvent):void 
        { 
           textBox.scrollV+=4; 
           textBox.addEventListener(MouseEvent.MOUSE_UP,mouseup);
        } 
        function mouseup(event:MouseEvent):void 
        { 
            if(textBox.scrollV == textBox.maxScrollV) 
            {
                addChild(nextBox);
                addChild(nextText);
            }
        }
        function clickNext(event:MouseEvent):void 
        { 
            trace("click");
            clickedNext = true;
            _speechBoxCheck.stop();
            (parent as Main).onTransition.start();
            textBox.scrollV = 0;
            textLoader.removeEventListener(Event.COMPLETE, onLoaded);
            this.parent.removeChild(this);
        }
        function moveOver(event:MouseEvent):void 
        {
            nextText.textColor = 0xffcc00;
        }
        function moveOut(event:MouseEvent):void 
        {
            nextText.textColor = 0xffffff;
        }
        ///////////////////////////////////////////////////////////////
        function speechBoxCheck(event:TimerEvent)
        {
            if ((parent as Main).introduction == true)
            {
                textLoader.load(new URLRequest("Texts/LV1introduction.txt"));
                trace("beginning");
                (parent as Main).onTransition.stop();
            }
            if ((parent as Main).levelNum == 1)
            {
                textLoader.load(new URLRequest("Texts/LV1complete.txt"));
                trace("go to lv 2")
                (parent as Main).onTransition.stop();
            }
            if ((parent as Main).levelNum == 2)
            {
                textLoader.load(new URLRequest("Texts/LV2complete.txt"));
                trace("go to lv 3")
                (parent as Main).onTransition.stop();
            }
        }

    }

}

編集: ゲームが開始されると、LV1 の紹介テキストが開始されます。scrollV が maxScrollV と等しくなると、次のボタンが表示されます。それをクリックすると、それ自体が削除され、ゲームが開始されます。ステージ 1 をクリアすると、levelNum は自動的に 2 になり、このクラスをメイン ドキュメント クラスから再度追加します。ただし、レベルに関係なく、同じテキストが何度も表示されます。

では、urlLoader は常に同じままですか? もしそうなら、どうすれば変更できますか?

4

1 に答える 1