コンポーネント(Alert)の使い方がよくわかりません

このQ&Aのポイント
  • コンポーネント(Alert)の使い方がよくわかりません。アラートをボタンが押されたら表示したいが、座標が正しくない。
  • ヘルプにあったサンプルスクリプトを試しましたが、座標が正しくないため、アラートが中央に表示されません。
  • アラートを表示する際、座標を正しく指定する方法を教えてください。
回答を見る
  • ベストアンサー

コンポーネント(Alert)の使い方がよくわかりません

ヘルプにあった以下のサンプルスクリプトの実行には成功しました。 import mx.controls.Alert; // 警告の確認後に実行するアクションを定義する。 var myClickHandler:Function = function (evt_obj:Object) { if (evt_obj.detail == Alert.OK) { trace("start stock app"); } }; // 警告ダイアログボックスを表示する。 Alert.show(0,0,"Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK); このアラートを、「あるボタンが押されたら表示させる」としたいのですが、うまくいきません。 上のサンプルスクリプトの「// 警告ダイアログボックスを表示する。」のところを以下のように変えました。 btn1.onRelease = function(){ Alert.show(0,0,"Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK); } これでも表示はされるのですが、座標がとんでもないところで、普通通り画面中央に表示されません。 これをちゃんと中央に表示したいのですがいい方法はないものでしょうか?

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

実際Alert.showには最初に 0,0,は含まれていませんよね? (引数が適切でなくエラーになります) とりあえずヘルプにある Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK); であるとして話をします Alert.showにあてている引数に this とうい部分があります これはAlertに対する親ウィンドウを指定するもので、 それを指定した場合、Alertはこの親ウィンドウの中央に表示されます 質問者さんのスクリプトでは btn1.onRelease = function(){ の内部に書いているので、ここでの this は btn1 に対するものとなるのです よって、btn1 の中心に Alertウィンドウが開いてしまうわけです 親ウィンドウを_rootにしたい場合はその引数を null もしくは undefined としてください そうすれば画面中央に表示されます 変更すると下記のようになります import mx.controls.Alert; // 警告の確認後に実行するアクションを定義する。 var myClickHandler:Function = function (evt_obj:Object) { if (evt_obj.detail == Alert.OK) { trace("start stock app"); } }; // 警告ダイアログボックスを表示する。 btn1.onRelease = function(){ Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, null, myClickHandler, "stockIcon", Alert.OK); } //詳しくは、ヘルプの Alert.show() に記述されています

tenketu
質問者

お礼

ありがとうございます。 ずっと悩んでいたのでホント助かりました。

関連するQ&A

  • イベントに適切な値が伝わらない

    0から9までidをもつdivを用意して、それぞれクリックしたら そのidを表示したいのですが、なぜかどれをクリックしても 表示されるのは「10」でした。以下のやり方では何がいけないのでしょうか? function sample(){ for(i=0; i<10; i++){ var obj = document.getElementById(i); obj.onclick = function(){ sample_alert(i); }; } } function sample_alert(i){ alert("i="+i); } window.onload = function() { sample(); } for($i=0; $i<10; $i++){ print "<div id=\"{$i}\">{$i}</div><br>\n"; }

  • アラートの初歩的使いかた

    下記を改造したいのですがうまくいかず。 「やっほ」の部分をscript内でなくonclickのところに「やっほ」と書いてscriptの部分では変数として受け取って表示したいのですが。 質問がうまく通じるかも心配なレベルです。 <script language=javascript><!-- function test(){ alert("やっほ") } //--> </SCRIPT> <A HREF="javascript:function voi(){};voi()" onClick="test()">テスト</A>

  • プルダウンメニューを選択していない時に送信ボタンを押した場合、(必須の)アラートを表示したい。

    過去にほぼ同じ質問がありましたが、それでも解決出来なかったので質問させていただきました。 フォームで未入力の項目に対してアラートとフォーカスされるようにしました。 そこにプルダウンメニューを加えたものを作ろうとしたのですが、アラートの内容が全部同じ(職業が選択されていません)になってしまった事と、アラートは表示されたのですが、プルダウンメニューを選択してもアラートが出続けてしまいます。 プルダウンメニューが未選択の場合にのみアラートを表示するにはどうしたらよいでしょうか。 <SCRIPT language="JavaScript"> <!-- function chkHissu(frm){ var hissu=Array('name','kana','age','mail','sex','syumi'); var hissu_nm = Array('名前','フリガナ','年齢','メールアドレス','性別','趣味'); var len=hissu.length; for(i=0; i<len; i++){ var obj=frm.elements[hissu[i]]; if(obj.type=='text' || obj.type=='textarea'){ if(obj.value==''){ alert(hissu_nm[i]+'は必須入力項目です'); frm.elements[hissu[i]].focus(); return false; } }else{ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){ alert(hissu_nm[i]+'は必須入力項目です'); return false; } } } return true; } function check(value){ //数字かどうかのチェック if(isNaN(value)){ alert("数値を半角で入力してください。"); //警告コメント document.form1.age.focus(); return false; } //入力があるかどうかのチェック if(!value){ alert("年齢を入力してください。"); //警告コメント document.form1.age.focus(); return false; } } function checkAd(address){ if(!address){ alert("メールアドレスを入力してください。"); } else if(address.indexOf("@",0)<=0){ alert("メールアドレスが正しくありません。"); document.form1.mail.select(); return false; } } //-- </SCRIPT> ご存知の方がいらっしゃいましたらご教授願います。

  • Chromeでalert()が無効にされてる

    <!doctype html> <html> <head> <meta charset="utf-8"> <title>実験</title> <style> #base{ background-color:green; } </style> <script> function start() { base.innerHTML="スクリプトの文"; alert("警告文"); } </script> </head> <body onload="start()";> <div id="base">タグの文</div> </body> </html>  作成中のJavaScriptプログラムが動作不良になったので試しに上のようなものを 作ってみました。表示する、というだけの簡単な実験です。  alert("警告文"); の1文がなければ、狙い通りscriptで文が上書きされます。 ところが、alert文が入ると、ブラウザが待機状態になって何も受け付けなくなって しまいます。終了ボタンも利かず、タスクマネージャーを起動して終了させないと いけなくなりました。その後、Alt・f4キーを押すと平常に戻り、終了ボタンもク リックできることがわかりました。  そもそもの作成中のプログラムの症状もそれです。alert文入りのスクリプトで、 固まってしまいます。どうも、alert表示チャレンジが成功せず、こころみ続けて 滞っていたようです。  これが起きるのはGoogleChromeだけです。他のブラウザで同じプログラムを使うと alert表示に至るまで意図通りに動きます。  alert表示が利く利かないの設定があって、オフになってるということでしょうか。 または、私だけChromeがおかしいのでしょうか?  Windows10Proの中古機使用です。alert動作を有効にする方法、または、その他 Chromeに何か問題があって、修正する方法。誰かご存知の方、ご教示ください。

  • アラートについて

    PHPでフォームを作っており送信または登録が完了したらアラートで メッセージを出力するいうものをつくりました。 例としてmysqlに登録完了したらアラートを出すという抜粋です。 if (PEAR:: isError($res)) { die($res->getMessage()); } else { echo "<script type='text/javascript'>"; echo "alert('登録完了');"; echo "</script>"; } これで動作は問題ないのですがアラートが表示されOKボタンを クリックしたらheaderlocationで指定のURLに飛ばすということは js側で制御できないものでしょうか? 使用目的としては、データの更新など同一ページで行った場合 アラートが表示されOKボタンをクリックしてもブラウザを更新 しなければデータが反映表示されないためです。 phpでアラートの後にheaderlocationをやるとページ移管は するもののアラートが表示されず困っております。 jsについてはほぼ無知なもので簡単なことなのかもしれないの ですが方法がわかりません。 フォームは複数ありアラートを表示させたい全ての箇所にechoで 出力しているのですが他にもいい方法などアドバイスなどが ありましたら教えて頂けますと非常に幸いです。

  • ビープ音+アラートの実行順

    こんにちは!質問です。 PHPを使用しています。 入力された値をsubmitして、データベースを検索して該当したデータがなければ javascriptで警告音を鳴らしてアラートを表示したいと思っております。 「警告音を鳴らす」→「アラート表示」の順番で実行したいのですが、 「アラート表示」→「OKボタン」→「警告音」の順番で実行されてしまいます。 以下の順番ではできないのでしょうか? ------------------------------------------------------------------------------ function beep(){ var base64 = 音声ファイルの文字列 var sound = new Audio("data:audio/wav;base64," + base64); sound.play(); } function err() { beep(); window.alert('該当するデータが存在しません。'); } err();//該当するデータがなければ実行する ------------------------------------------------------------------------------ 可能であれば、ソースコードも書いていただければ助かります。 ※chromeを使用しています。IEではアラート表示時にデフォルトの音が鳴るのですが、 音が小さく微妙なのであまり使いたくありません。

  • アラートを出したいのですが・・

    以下のような感じでラジオボタンのリンクで、何も選択していない状態でGOボタンを押すと アラートが出るようにしたいのですが、どうしたらよいのかわからなくて困っています。 できれば、フルーツを選んでない場合は「フルーツを選んでください」と、価格を選んでない場合は 「価格を選んでください」と、両方選んでない場合は上記の2つとも出るようになれば理想なんですけど・・・ どうか宜しくお願い致します。m(_ _"m)ペコリ <script language=javascript> <!-- window.onload = function(){ document.forms[0]["GO"].onclick = function(){ var fruits2 = document.forms[0]["fruits"]; var price2 = document.forms[0]["price"]; function getCheckedElement(nl){ for(var i=0;i<nl.length;i++){ if(nl[i].checked) return nl[i]; } } var fruits = getCheckedElement(fruits2).value; var price = getCheckedElement(price2).value; URL = '/' + fruits + '/' + price; window.location = URL; } } --> </script> <form action="javascript:void(0)"> <input type="radio" name="fruits" value="APPLE">リンゴ<br> <input type="radio" name="fruits" value="ORANGE">ミカン <BR><BR> <input type="radio" name="price" value="100.html">100円均一商品<BR> <input type="radio" name="price" value="300.html">300円均一商品<BR> <input type="radio" name="price" value="500.html">500円均一商品<BR> <BR><BR> <input type="button" value="GO" name="GO" onclick="check()"> </form>

  • alertを出さないと、正常に動作しない

    Javascript初心者です。 現在JavascriptからPHPにデータを送信して、PHP側でデータをjsonで送信し Javascriptで受取り、データを表示しようとしています。 以下、サンプルです。 var jsonData; function aaa(){ var jsonText = XMLHttpRequest(phpからのjson受取) eval('jsonData=' + jsonText ); } function bbb(jsonData){ alert(); //←不要なアラート alert(jsonData[0]); } window.onload = function SetUp(){ aaa(); bbb(jsonData); } bbb内の最初のアラートを出すと、次のアラートでちゃんとデータを表示するのですが、 bbb内の最初のアラートを出さないと、次のアラートでデータが表示されません。 この最初のアラートを出さずにデータを取得する方法はあるのでしょうか? よろしくお願い致します。

  • javascriptで印刷ダイアログを出力すると同時に

    javascriptで印刷ダイアログを出力すると同時に setTimeouで一定時間後にアラートを表示していたのですが、 IE8では印刷ダイアログが表示されている時はタイマーが止まってしまうようです。 また、IE6では動作しました。 なにか解決方法はないでしょうか? 以下がサンプルソースです。 <html> <head> <title>setTimeout</title> <script type="text/javascript"> function aaa() { alert("タイムアウトしました。"); } function func() { setTimeout("aaa()", 5000); window.print(); } </script> </head> <body onload="func()"> aaa </body> </html>

  • 未選択のプルダウンメニューをアラートしたい

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 フォームで未入力の項目に対してアラート&フォーカスされるようにしました。 ここに『住んでいる県』(プルダウン)を追加したいのですがどうしてもうまくいきません。 <script type='text/javascript'> <!-- function check(frm){ var hissu=Array('name','zip','sex'); var hissu_nm = Array('名前','郵便番号','性別'); var len=hissu.length; for(i=0; i<len; i++){ var obj=frm.elements[hissu[i]]; if(obj.type=='text' || obj.type=='textarea'){ if(obj.value==''){ alert(hissu_nm[i]+'は必須です'); frm.elements[hissu[i]].focus(); return false; } }else{ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){   alert(hissu_nm[i]+'は必須です'); return false; } } } return true; } //--> </script> どうかお分かりになる方よろしくお願いいたします。

専門家に質問してみよう