のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,894人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレ+ JavaScript の質問用スレッド vol.104 +

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    701 = :

    JavaScriptでゲームを作ろうとしてるんですが、
    canvasで円を描いて、円の中をクリックしたら円を移動させて、
    っていう、AIM練習ゲームみたいなのを作りたいんですが、
    円をクリックしたら、処理をさせるみたいな、
    四角の場合、
    window.document.onclick = function(e){
    var obj = new Object();
    obj.x = e.pageX;
    obj.y = e.pageY;
    if(obj.x >= 100 && obj.x <= 200 && obj.y >= 100 && obj.y <= 200){処理}
    }
    円の場合どうすればいいでしょうか?教えてください。

    702 = :

    なんでObject使っているのかは分からんけど、円の中心(x0,y0)半径rのとき
    (x,y)が円内にある条件は「(x-x0)**2 + (y-y0)**2 < r**2」だから。
    ただし「**2」は2乗を表す(JavaScriptにはない)。

    703 = :

    教えていただいた条件を、ifの中で使って、円をクリックしたら、
    ちょうどぴったり円の中でクリックしたときだけ、
    ifの中の処理を実行することができました、
    ありがとうございました。

    704 = :

    Javascriptの変数定義の順番について教えてください
    thisについて色々試していて、下のコードを書いたんですが
    変数定義がAの位置かBの位置かで実行結果が変わります
    なんでですか?

    <script type="text/javascript">
    'use strict';

    var testWindowFunc1 = function(){ console.log(this); }
    window.testWindowFunc1(); // => Window {top: Window, ...}

    var testWindowFunc2 = function(){ console.log(this.testWindowVal); }
    // window.testWindowVal = "Hoge"; // A
    window.testWindowFunc2(); // => Aの行をコメントアウトなら "Hoge", Bの行をコメントアウトなら undefined
    // window.testWindowVal = "Hoge"; // B
    </script>

    706 = :

    すんません逆になってました、というか言葉間違ってた
    Aの行のコメント外したらHoge、Bの行のコメント外したらundefinedです
    Chromeでやってます

    707 = :

    あれ、当たり前のこと聞いている気がしてきた
    すみません704は取り消しでお願いします。
    なんでこんな質問したんだろう…

    709 = :

    ホイールの動きを拾っているところで、イベントバブリングを
    止めてしまえば良いよ

    711 = :

    出来る

    713 = :

    var YouTube = new Object();
    YouTube.rev = 2;
    YouTube.SearchDesc = "Youtube by Darby_Crash"; //MOD BY Darby_Crash, original by Xiphirx
    YouTube.Name = "YouTube";
    YouTube.Search = function (keyword, page){
    var result = new Object();
    result.bypage = 20;
    result.start = (page-1)*result.bypage+1;
    var sortBy = "relevance";
    var catSpecified = false;

    if (keyword.charAt(0) == '$')
    {
    var keywordBu = keyword;
    var kpos = keyword.indexOf(" ");
    var category = keyword.substring(1, kpos);
    keyword = keyword.substring(kpos+1);
    catSpecified = true;
    }

    if (keyword.charAt(0) == '@')
    {
    sortBy = "published";
    }


    if (catSpecified == false)
    {
    c=GetContents('http://gdata.youtube.com/feeds/api/videos?q='+escape(keyword)+'&start-index='+result.start+'&max-results='+result.bypage+'&orderby='+sortBy+'&racy=in

    714 = :

    }
    else
    {
    c=GetContents('http://gdata.youtube.com/feeds/api/videos?q='+escape(keyword)+'&start-index='+result.start+'&max-results='+result.bypage+'&orderby='+sortBy+'&racy=include&category='+category+'&v=1');
    }

    result.total = ext("<openSearch:totalResults>");
    result.VideoInfo = new Array();
    v = {attr:2};
    v.id = 0;
    v.Title = "YouTube Search Help";
    v.Description = "@query = search by upload date\n$category query = search in a category";
    v.URL = '';

    result.VideoInfo.push(v);
    while(p=c.indexOf("<entry",p)+1){
    v = {attr:2};//neither IDA|npp find this string ...0=RD 1= 2=SRD 3=S
    v.id = ext("<id>http://gdata.youtube.com/feeds/api/videos/","</id>");
    v.Title = ext("<title type='text'>");
    v.Description = ext("content type='text'>")+'\nUploader:'+ext("<name>");
    v.CommentCount = ext("countHint='")*1;
    v.Tags = ext("keywords>").replace(/,/g,"");
    v.LengthSeconds = ext("ds='")*1;
    v.RatingAvg = ext("average='")*1;
    v.RatingCount = ext("numRaters='")*1;
    v.MylistCount = ext("favoriteCount='")*1;
    v.ViewCount = ext("viewCount='")*1;
    v.ThumbnailURL = '';
    v.SaveFilename = v.id+".flv";
    v.URL = 'YouTube.play("'+v.id+'")';
    result.VideoInfo.push(v);
    }

    715 = :

    YouTube.play = function (id){
    c=GetContents("http://www.youtube.com/watch?v="+id);p=0;
    var url = unescape(ext('url_encoded_fmt_stream_map','allowscriptaccess'));p=0;
    p = url.indexOf(",itag=5&url=", 0); preurl = url.ext('fallback_host=','.c.');
    p = url.indexOf(",itag=5&url=", 0); url1 = unescape(url.ext('.c.youtube.com','&type=video')); url2 = url.ext('&sig=','&quality=');
    var url = 'http://'+preurl+'.c.youtube.com'+url1+'&signature='+url2; //quality=small
    return url;
    }
    SiteList.push(YouTube);

    これでgotubeでyoutubeが見られたんですが  仕様変更で見られなってしまいました
    どの変を変えればいいのかさっぱりなんです・・・ 

    716 :

    >>715
    では、まず1行目から読んでいって
    わからない部分が出てきたら、再質問してくだされ

    717 = :

    >>716
    c=GetContents('http://gdata.youtube.com/feeds/api/videos?q='+escape(keyword)+'&start-index='+result.start+'&max-results='+result.bypage+'&orderby='+sortBy+'&racy=include&category='+category+'&v=1');

    このファイルなんですか?

    718 = :

    javascriptを覚える行程ってどんな感じですか?
    プログラミング初心者なんですが 
    いいサイトありますか?

    720 = :

    ぼっち....
    この人Zextにはいったんですね 1.3でがちクランは入れるんだ!1.5の俺は神だな

    723 = :

    javascriptで、ループのフレームレートをtextに表示したいんですが、
    window.onload = function(){
    var countFps;
    function getFps(){
    function gameLoop(){
    countFps++;
    document.getElementById("text").value = fps;
    setTimeout(function(){gameLoop()},100);
    }
    fps=countFps;
    countFps=0;
    gameLoop();
    setTimeout(function(){getFps},1000);
    }
    getFps();
    }
    これでは、フレームレートが表示されるどころか、undifinedになってしまいます、
    ブラウザはIE10です、
    どうやったらフレームレートが表示させられますか?教えてください。

    725 = :

    ありがとうございます、
    window.onload = function(){
    var countFps = 0;
    var fps = 0;
    function getFps(){
    function gameLoop(){
    countFps++;
    document.getElementById("text").value = fps;
    setTimeout(function(){gameLoop()},100);
    }
    fps=countFps;
    countFps=0;
    gameLoop();
    setTimeout(function(){getFps()},1000);
    }
    getFps();
    }
    教えてくれたことを参考に、
    ここまでできました、ですが、countFpsとfpsが、どんどん増えて行ってしまいます。
    どうすれば、textにフレームレートが表示させられますか?教えてください、お願いします。

    726 = :

    gameLoop何回呼び出してんだよ

    727 = :

    教えていただいたことを参考に、
    gameLoopをgetFpsの外に移動させて、
    function()から一回だけ呼び出したら、なんと、
    textにフレームレートが表示されました!
    お二方、教えてくれて、ありがとうございました。

    728 = 716 :

    >>717
    JS以外の質問はスレ違いだから、せめてググってからにしてもらえますでしょうか
    http://developers.google.com/youtube/2.0/reference?hl=ja

    729 = :

    GreaseMonkey用のscriptを作りたいんんですが、

    「href=.*\/status\/(\d+).*\</a\>」
    の○桁の数字(\d+)部分を↓に入れて、
    「http://api.twitter.com/1/statuses/show/(\d+).json」
    そこの、"retweet_count"要素の数値を取得して
    表示を
    「href=.*\/status\/(\d+).*\</a\>」+「取得した"retweet_count"の数値」
    にするにはどう記述したら良いか教えて頂けませんか?

    はちゃめちゃな質問ですが、
    よろしくお願いします。

    730 = :

    >>729
    どこでつまずいてるのか詳しく

    732 = :

    >>730
    javascript自体ほとんど分からない状態でして、
    重要な部分さえ分かれば
    後は他のscriptを参考に見よう見真似で作ってみようと。

    >>731
    レスありがとうございます!!

    >文字列.replace(/href=.*¥/status¥/(¥d+).*¥</a¥>/,function($0,$1){
      ごにょごにょ
    })

    「href=.*\/status\/(\d+).*\</a\>」の部分は $0
    「\d+」は $1を使えばいいって事ですよね?

    これを手掛かりに何とかやってみます!
    出来なかったら、また質問させていだたくかもしれません。

    733 = :

    >>732
    いや、もう戻ってこなくていい。

    734 = :

    &yen;

    736 = :

    >>733
    (´;ω;`)ウッ…

    737 = :

    もう来なくていいに同意

    740 = :

    JavaScriptで、わからないことがあるので、質問します。
    var x = 1.2
    とか、整数か、小数点数が入ってる変数があります、
    変数の中身が、整数のときだけとか、小数点数のときだけに、処理をさせるには、
    どうすればいいですか?教えてください、お願いします。

    741 = :

    >>740

    http://stackoverflow.com/questions/3885817/how-to-check-if-a-number-is-float-or-integer

    742 = :

    >>741
    見てみました、そのサイトの138番ので、
    わかりました、やりたいことができました、ありがとうございました!

    744 = :

    >>742
    138は参考になった投票の数

    745 = :

    ボタンを押したらテキストエリア内にあるタグを入れようと思ってるんですが、
    その関数で、

    function puttag(){
    var tag = "タグ";
    var target = document.getElementsByTagName('textarea')[0];

    target.innerHTML += tag

    }

    っていう関数を書いてるんですが、
    テキストエリアが空白の状態であれば、指定したタグがテキストエリア内に目に見えて表示されるのですが、
    最初に文字が入っている状態でこの関数を実行すると、「テキストエリア内にタグが入っている」のに目に見えて表示されません。

    なぜタグが入っていると判断したかについては、タグをinnerHTMLに代入した直後にalertで表示してみると、ちゃんとタグが表示されたからです。
    でもブラウザ上には表示されません。

    ブラウザ上でも表示させるにはどうすればいいでしょうか?

    746 = :

    × target.innerHTML
    ○ target.value

    747 = :

    >>746
    うおおおおおおおおおお!
    ありがとうございました!!

    748 = :

    間違ってライブラリのとこで質問してしまった
    ラッパーオブジェクトは不要で混乱を招くから
    new Boolean、new Number、new String、new Object、new Array
    は使用をさけるべきってgood partsに載ってるのですが、
    ラッパーオブジェクトってよくわからないのですが、
    やっぱ使わない方がいいのでしょうか?

    749 = :

    >>748
    Object, Arrayは関係ない。どちらもオブジェクトだから
    (とはいえどちらも {}, [] の記法のみ使えばok)

    論理値、数値、文字列は基本的にプリミティブ値として使えばよい

    プリミティブ値に対して直接メソッド呼び出し・プロパティ参照を行うと、
    その都度内部的にラッパーオブジェクトが作られることになってる
    var str = 'hoge';
    console.log(str.toUpperCase()); // 内部的にnew String(str).toUpperCase()
    // 結果的にString.prototype.toUpperCaseが呼ばれ、大文字の"HOGE"を得られる

    プリミティブ値をオブジェクトとして作ると独自のプロパティを持たせることができるくらい
    var strObj = new String('hoge');
    strObj.jp = 'ほげ';
    console.log(strObj.jp);

    生成コストが高いし、扱いにくいので使われない
    'hoge' === 'hoge' // => true
    new String('hoge') === new String('hoge') // => false
    typeof 'hoge' // => "string"
    typeof new String('hoge') // => "object"


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について