0

さまざまな関数を含むさまざまなファイルに多くの「jsクラス」を作成しました。プロジェクトは大きすぎてコードを投稿できません。

どういうわけか私はバグを作成するためにフィニッシュラインで直接管理しました。一部のブラウザ(たとえばff)では、目的の関数が実行されません(その関数の実行の背後にあるコードを変更せず、その間に関数のコードを変更せずに、初期段階で適切に実行されます)。

このスキームを使用して、jsクラスとその下にある関数を作成しました。

function ClassName(){
   this.FunctionName = function(){
   //something
   }
}

アドレスバーに表示されるのは次のとおりです。javascript:ClassName.FunctionName()何が起こるかは、ブラウザがたとえばchromeと同じように関数を実行するだけで、何も問題が発生しないことです。

だから私は、コードのどこかに私が見つけることができない(そこに属していない)悪い文字があるか、どこか他の場所(おそらく別のクラスにもある)に欠落している文字があると推測しています-またはそのようなもの-一部のブラウザはそれを正しく解釈し(たとえば、WindowsではChrome、MacではSafariですが、Windowsではそうではありません)、そうでないブラウザもあります。

しかし、私が望んでいるのは、Stack Overflowの専門家の一人からの手がかりで、アドレスバーの動作が原因である可能性があるか、欠落している文字やコードに属していない文字を見つける方法を教えてくれることです。 。ベストプラクティスは何ですか、ツールはありますか?

chromeとie開発者ツール(f12)とfirefox firebugは私にコンソールエラーを与えなかったので、私は今本当に無知です、多分それはhtmlにありますか?ほとんどのコンテンツはjsによって作成されるため、htmlを投稿できますが、大きくはなりません。

<!DOCTYPE HTML>

<html>

<head>
    <title>
        engine demo build
    </title>

    <style type="text/css" title="currentStyle" media="screen">
        @import "style_l.css";
    </style>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <meta name="Content-Language" content="en-us">
    <meta name="Language" content="english, en-us">

    <script type="text/javascript" src="Engine.KeyboardDefines.js"></script>
    <script type="text/javascript" src="Engine.HelpFunctions.js"></script>
    <script type="text/javascript" src="Engine.BagaObject.js"></script>
    <script type="text/javascript" src="Engine.CollisionRect.js"></script>
    <script type="text/javascript" src="Engine.ImageObject.js"></script>
    <script type="text/javascript" src="Engine.ParallaxLayer.js"></script>
    <script type="text/javascript" src="Autoscroller.LevelObject.js"></script>
    <script type="text/javascript" src="Engine.SpriteImageObject.js"></script>
    <script type="text/javascript" src="Autoscroller.Player.js"></script>
    <script type="text/javascript" src="JumpAndRun.Player.js"></script>
    <script type="text/javascript" src="Adventure.Player.js"></script>
    <script type="text/javascript" src="JumpAndRun.Gate.js"></script>
    <script type="text/javascript" src="JumpAndRun.Switch.js"></script>
    <script type="text/javascript" src="JumpAndRun.Box.js"></script>
    <script type="text/javascript" src="JumpAndRun.Dragon.js"></script>
    <script type="text/javascript" src="JumpAndRun.Crane.js"></script>
    <script type="text/javascript" src="JumpAndRun.Golem.js"></script>
    <script type="text/javascript" src="Autoscroller.Obstacles.js"></script>
    <script type="text/javascript" src="Autoscroller.ObstaclesGround.js"></script>
    <script type="text/javascript" src="Adventure.ObstaclesGround.js"></script>
    <script type="text/javascript" src="Adventure.ObstaclesGroundCastle.js"></script>
    <script type="text/javascript" src="Adventure.ConversationIndicator.js"></script>
    <script type="text/javascript" src="Autoscroller.ObstaclesCeiling.js"></script>
    <script type="text/javascript" src="JumpAndRun.Obstacles.js"></script>
    <script type="text/javascript" src="JumpAndRun.ObstaclesGround.js"></script>
    <script type="text/javascript" src="JumpAndRun.ObstaclesGolemGround.js"></script>
    <script type="text/javascript" src="JumpAndRun.ObstaclesSpikes.js"></script>
    <script type="text/javascript" src="JumpAndRun.ObstaclesGroundLow.js"></script>
    <script type="text/javascript" src="JumpAndRun.ObstaclesGoals.js"></script>
    <script type="text/javascript" src="Autoscroller.GoalObject.js"></script>
    <script type="text/javascript" src="GameEngine.js"></script>
    <script type="text/javascript" src="Engine.EngineCore.js"></script>
    <script type="text/javascript" src="main.js"></script>
    <script type="text/javascript" src="Engine.FPSObject.js"></script>

</head>

<body>
    <div class='GAMEmt-std'></div>

    <div id='debug'></div>

    <div id='GAMEglobalwrapper'>
        <div id='sounds'>
            <div id='bgmusic'>
                <audio id='l1bg' loop>
                    <source src='assets/audio/musicTracks/Longing_for_Tumbleweeds_by_Admiral_Bob_feat_Snowflake.mp3' type='audio/mp3'/>
                    <source src='assets/audio/musicTracks/Longing_for_Tumbleweeds_by_Admiral_Bob_feat_Snowflake.ogg' type='audio/ogg'/>

                    <p>seeing this message can have 2 possible causes:
                    <br>
                    1. You are using a browser which is not supported or
                    <br>
                    2. You are using Safari on windows (or linux? - not tested till now)
                    <br><br>
                    Solution:
                    <br>
                    In the first case get a supported browser
                    <br>
                    In the second case download Apple Quicktime, close Safari, install Quicktime, run Quicktime till advertisement appears, close Quicktime, run Safari again, browse to this site.
                </audio><!--l1bg-->

                <audio id='l2bg' loop>
                    <source src='assets/audio/musicTracks/Two_Swords_by__ghost.mp3' type='audio/mp3'/>
                    <source src='assets/audio/musicTracks/Two_Swords_by__ghost.ogg' type='audio/ogg'/>
                </audio><!--l2bg-->

                <audio id='l3bg' loop>
                    <source src='assets/audio/musicTracks/Real_good_day_by_calling_sister_midnight.mp3' type='audio/mp3'/>
                    <source src='assets/audio/musicTracks/Real_good_day_by_calling_sister_midnight.ogg' type='audio/ogg'/>
                </audio><!--l2bg-->

                <audio id='l4bg' loop>
                    <source src='assets/audio/musicTracks/Dance_of_Light_Pixies_by_onlymeith.mp3' type='audio/mp3'/>
                    <source src='assets/audio/musicTracks/Dance_of_Light_Pixies_by_onlymeith.ogg' type='audio/ogg'/>
                </audio><!--l4bg-->

                <audio id='scenebg' loop>
                    <source src='assets/audio/musicTracks/Longing_spacious_choir_remix_by_zep_hurme.mp3' type='audio/mp3'/>
                    <source src='assets/audio/musicTracks/Longing_spacious_choir_remix_by_zep_hurme.ogg' type='audio/ogg'/>
                </audio><!--l2bg-->
            </div><!--bgmusic-->

            <div id='soundfx'>
                <audio id='hitsound'>
                    <source src='assets/audio/soundFX/standardHit.mp3' type='audio/mp3'/>
                    <source src='assets/audio/soundFX/standardHit.ogg' type='audio/ogg'/>
                </audio><!--hitsound-->

                <audio id='switchsound'>
                    <source src='assets/audio/soundFX/switch.mp3' type='audio/mp3'/>
                    <source src='assets/audio/soundFX/switch.ogg' type='audio/ogg'/>
                </audio><!--switchsound-->

                <audio id='gatesound'>
                    <source src='assets/audio/soundFX/gate.mp3' type='audio/mp3'/>
                    <source src='assets/audio/soundFX/gate.ogg' type='audio/ogg'/>
                </audio><!--gatesound-->

                <audio id='boxsound'>
                    <source src='assets/audio/soundFX/box.mp3' type='audio/mp3'/>
                    <source src='assets/audio/soundFX/box.ogg' type='audio/ogg'/>
                </audio><!--boxsound-->
            </div><!--soundfx-->
        </div><!--sounds-->

        <canvas id="canvas" ondrop="GLOBAL_gameEngine.drop(event)" ondragover="GLOBAL_gameEngine.allowDrop(event)" width="800" height="450"> 
            <p>You will need a current version of a major browser to play this game</p>
        </canvas>

        <div id='gameoverscreen'>
            <div id='gameover'></div>

            <div id='lvl1gameover'>
                <a href=javascript:GLOBAL_gameEngine.restartLevel1()>Try Again</a>
            </div><!--lvl1gameover-->

            <div id='lvl2gameover'>
                <a href=javascript:GLOBAL_gameEngine.resetAtCheckpoint()>Reset At Last Checkpoint</a>
            </div><!--lvl2gameover-->

            <div id='lvl4gameover'>
                <a href=javascript:GLOBAL_gameEngine.restartLevel4()>Somenone saw you. Try again. -></a>
            </div><!--lvl4gameover-->
        </div><!--gameover-->

        <div id='storyscreen'>
            <div id='languagepicker'>
                <!--a href=javascript:GLOBAL_gameEngine.setLanguage('en')-->English (soon)<!--/a-->
                <br><br>
                <a href=javascript:GLOBAL_gameEngine.setLanguage('de')>Deutsch</a>
            </div><!--languagepicker-->

            <div id='sequenz1'>
                <div id='sequenz1question'>
                </div><!--sequenz1question-->

                <div id='sequenz1img'>
                </div><!--sequenz1img-->

                <div id='sequenz1txt'>
                </div><!--sequenz1txt-->
            </div><!--sequenz1-->

            <div id='sequenz2'>
                <div id='sequenz2question'>
                </div><!--sequenz2question-->

                <div id='sequenz2img'>
                </div><!--sequenz2img-->

                <div id='sequenz2txt'>
                </div><!--sequenz2txt-->
            </div><!--sequenz2-->

            <div id='sequenz3'>
                <div id='sequenz3question'>
                </div><!--sequenz3question-->

                <div id='sequenz3img'>
                </div><!--sequenz3img-->

                <div id='sequenz3txt'>
                </div><!--sequenz3txt-->
            </div><!--sequenz3-->

            <div id='sequenz4'>
                <div id='sequenz4question'>
                </div><!--sequenz4question-->

                <div id='sequenz4img'>
                </div><!--sequenz4img-->

                <div id='sequenz4txt'>
                </div><!--sequenz4txt-->
            </div><!--sequenz4-->

            <div id='sequenz5'>
                <div id='sequenz5question'>
                </div><!--sequenz5question-->

                <div id='sequenz5img'>
                </div><!--sequenz5img-->

                <div id='sequenz5txt'>
                </div><!--sequenz5txt-->
            </div><!--sequenz5-->

            <div id='conversation' ondrop="GLOBAL_gameEngine.drop(event)" ondragover="GLOBAL_gameEngine.allowDrop(event)">
                <div id='conversationplayertxt'>
                </div><!--conversationplayertxt-->

                <div id='conversationvillagertxt'>
                </div><!--conversationvilagertxt-->

                <div id='conversationdirection'>
                </div><!--conversationdirection-->

                <div id='conversationimg'>
                </div><!--conversationImage-->
            </div><!--conversation-->
        </div><!--storyscreen-->

        <div id='hint' draggable='false'>
        </div><!--hint-->

        <div id='gui'>
            <div id='healthmeter'>
                <div id='hp1'><img src='assets/visuals/images/heart.png'></div>
                <div id='hp2'><img src='assets/visuals/images/heart.png'></div>
                <div id='hp3'><img src='assets/visuals/images/heart.png'></div>
                <div class='clearleft'></div>
            </div>

            <div id='itembackpack'>
                <div id='pickaxe' alt='pickaxe' title='pickaxe' class='firstitem'><img src='assets/visuals/images/pickaxe.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "pickaxe")'></div>
                <div id='letter' alt='letter' title='letter' class='notfirstitem'><img src='assets/visuals/images/letter.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "letter")'></div>
                <div id='iron' alt='iron' title='iron' class='notfirstitem'><img src='assets/visuals/images/iron.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "iron")'></div>
                <div id='nails' alt='nails' title='nails' class='notfirstitem'><img src='assets/visuals/images/nails.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "nails")'></div>
                <div id='dagger' alt='dagger' title='dagger' class='notfirstitem'><img src='assets/visuals/images/dagger.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "dagger")'></div>
                <div id='book' alt='book' title='book' class='notfirstitem'><img src='assets/visuals/images/book.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "book")'></div>
                <div id='amulet' alt='amulet' title='amulet' class='notfirstitem'><img src='assets/visuals/images/amulet.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "amulet")'></div>
                <div id='ring' alt='ring' title='ring' class='notfirstitem'><img src='assets/visuals/images/ring.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "ring")'></div>
                <div id='mouse' alt='mouse' title='mouse' class='notfirstitem'><img src='assets/visuals/images/mouse.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "mouse")'></div>
                <div id='wasps' alt='wasps' title='wasps' class='notfirstitem'><img src='assets/visuals/images/wasps.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "wasps")'></div>
                <div id='dog' alt='dog' title='dog' class='notfirstitem'><img src='assets/visuals/images/dog.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "dog")'></div>
                <div id='sleepingpowder' alt='sleepingpowder' title='sleepingpowder' class='notfirstitem'><img src='assets/visuals/images/sleepingpowder.jpg' draggable='true' ondragstart='javascript:GLOBAL_gameEngine.drag(event, "sleepingpowder")'></div>
            </div>
        </div><!--gui-->
    </div>

    <script>
        var debug = document.getElementById('debug');

        debug.log = function(){
            this.innerHTML = "";
            for(var i = 0; i < arguments.length; i++)
            {
                this.innerHTML += arguments[i] + " ";
            }
        }
    </script>
</body>

</html>

言及するのを忘れた:ページには[オブジェクトオブジェクト]が表示されます

onclickに変更すると、次のようになります。ReferenceError:GameEngineが定義されていません-閉じ角かっこが欠落しているようです-現在検索していますが、gameEngineにはありません。つまり、上記のクラスの1つです。

最後のエラーはコメントでした私は誤って「//」を介してコメントアウトしませんでした-onclickは問題を解決しました

GREAT andFASTSUPERIORのサポートに感謝します!!! これで、見つけたばかりのパフォーマンスの問題を取り除いた後、アップロードするすべてのものを準備できます。本当にありがとうございました!

4

1 に答える 1

3

href を使用する代わりに、リンクを onclicks にする必要があります。

<a onclick="GLOBAL_gameEngine.restartLevel1()">Try Again</a>

また、href を使用する場合でも、href を引用符で囲む必要があります。

<a href="javascript:GLOBAL_gameEngine.restartLevel1()">Try Again</a>
于 2012-12-19T19:15:41.647 に答える