• ベストアンサー

isLoading:Boolean = trueの使い道

ちょっとタイトルわかりづらいと思うのですが、 ネット上で、AS3のサンプルを探していていつも気になるのですが、なかなか調べてもどういった使い道があるのかもわからないので質問させてもらいました。 というのも、 private var isLoading:Boolean = true; ~~~~~~~~ if(isLoading){ 条件分岐 } などの記述があったとして、このisLoadingはどういった意味合い、それがあることによってどういった時に役に立つのか? それが知りたいです。 お手数書けますが、ご教授お願いします。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> private var isLoading:Boolean = true; これは変数 「isLoading」 に 「true」 というブール値を代入しておく。 という意味ですね。 変数 「isLoading」 はフラグです。 フラグとは一般的には 「Yes/No」 とか 「ON/OFF」 とか 「有/無」 などというような 「全か無か」 の値を代入するものです。 数値にすると 「1/0」 です(厳密には「0以外/0」だったりしますが)。 「isLoading」 という変数名のネーミングの意味合いからして, 「ロードされたか/ロードされていないか」 を示す旗印だと思います。 if(isLoading){   条件分岐 } これは  もし変数「isLoading」に代入された値が true であれば{    ここに書いた動作を実行する  } という意味です。 したがって普通, if(isLoading){   条件分岐 } は,変数「isLoading」の値が不明なときに, 何かがロードされたか否かは無関係のタイミングで実行されるものだと思います。 たとえば, 何かがロードされたかされていないかは別として, 常に (EVENT.ENTER_FRAME などで) if文 判定が実行されていて, 変数「isLoading」の値が true になった瞬間に何かを実行するときとかです。 通常は「ture」が「Yes」や「ON」や「有」を示す旗色として使われますから, private var isLoading:Boolean = true; というように初期値を与えるのではなく private var isLoading:Boolean = false; というように初期値を与えておきます。 (絶対にそうという意味ではなく,普通はそうするという意味です。) そして, 何かがロードされたときにフラグを反転させます。 (通常は false を true に変更します。別に true を false にしても問題はありません。) そして, そのロードとは無関係に実行される if文 に入ったとき, 「もしロードされていたら→○○をする」 「もしロードされていなかったら→××をする(または○○をしない)」 という動作の分岐をさせます。 かなり漠然としていますが,だいたいそういうことです。

sho27_2009
質問者

お礼

おおお!早速のお返事ありがとうございます! とてもわかりやすいご説明ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • boolean型ではなくて

    booleanの2つの値を取る変数ではなく、3つの値を取れる変数ってあるのでしょうか?booleanを2つ使用した場合もやってみたのですがうまく動きませんでした。先に次のようにbooleanを記述して。 boolean state=true; boolean state1=true; boolean state2=true; 後半部分で次のようにやってみたのですが、3値とったことにはならないですかね?(^^; if(state)     {      if(state1){buffer=img2;}      else{buffer=img3;}      if(state2){buffer=img4;} else{buffer=img5;}     } else{} g.drawImage(buffer,0,0,null); state1 = !state1; state2 = !state2;

    • ベストアンサー
    • Java
  • VBAでWorkbook_BeforeSaveイベントで質問

    Workbook_BeforeSaveイベントである条件に達していればExcelファイルを終了したくないのですがどうすればよいでしょうか? WindowsXP ProSP2、Excel2000 コード例) Option Explicit Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) dim flg as boolean if flg=true then exit sub end if End Sub

  • vba boolean変数を開放する方法

    エクセルのセルに「○○○○○○○○○○××××××××××」と入っているものをランダムに並べ代えるマクロを探してみました。 Sub macro2() Dim i, m As Integer Dim b, c As String Dim flg(1 To 20) As Boolean b = Cells(1, 1).Value Randomize For i = 1 To 20 Do m = Int(20 * Rnd + 1) If flg(m) = False Then flg(m) = True Exit Do End If Loop c = c & Mid(b, m, 1) Next i Cells(1, 2).Value = c End Sub これはうまく動くのですが、10行分やろうとして、以下のように変更すると暴走(終わらない)します。 Sub macro2() Dim i, m, n As Integer Dim b, c As String Dim flg(1 To 20) As Boolean For n = 1 To 10 b = Cells(n, 1).Value Randomize For i = 1 To 20 Do m = Int(20 * Rnd + 1) If flg(m) = False Then flg(m) = True Exit Do End If Loop c = c & Mid(b, m, 1) Next i Cells(n, 2).Value = c next n End Sub 一行目が終わってもboolean変数の値がそのまま残っているのが原因らしいのですが開放する方法がわかりません。 取りあえずもう一つマクロを追加してやりたいことはできたのですが、 Sub macro1() Dim n As Integer For n = 1 To 10 Call macro2(n) Next n End Sub Sub macro2(n As Variant) 以下略 なんかスッキリしません。 boolean変数を開放し、マクロひとつですます方法を教えて頂きたくお願いします。 flg(m) = Falseを挿入してもダメでした。

  • DataGridView上のチェックボックスが、TrueかFalseか

    DataGridView上のチェックボックスが、TrueかFalseか判定する際にエラーが出て困っています。 DataGridViewにチェックボックスのカラムを設定し、そのチェックボックスがTrueがFalseかを判断したいと思っています。 以下のコードではエラーになるのですが、何が原因でしょうか。 前提条件 ・環境:VS.NET(VB) ・DataGridView名:dgv ・チェックボックスのカラム名:cCheck For Each dgr As DataGridViewRow In dgv.Rows If CType(dgr.Cells("cCheck").Value, Boolean) Then '処理 End If Next デバッグをしていると、 上記の「 If CType(dgr.Cells("cCheck").Value, Boolean) Then」 でエラーが発生します。 エラー内容は「string型からBoolean型への変換は無効です。」です。 お分かりの方がおりましたら、ご回答頂ければ幸いでございます。 よろしくお願い致します。

  • エクセルVBAにて保存するとき

    Private Sub Workbook_BeforeClose(Cancel As Boolean) If MsgBox("エクセルを終了してもよろしいですか?", vbYesNo) = vbNo Then Cancel = True Exit Sub End If Application.DisplayAlerts = False Application.Quit End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) MsgBox "そのボタンでは保存できません。" & vbCrLf & _ "雛形は残しておきましょう" & vbCrLf & _ "" & vbCrLf & _ "ツールバーの「マクロなし出力」から保存できます。" Cancel = True End Sub という二つのマクロをThisworkbookにいれてあるんですが、 この二つを有効(今は2つ目を'でコメント状態にしてあるので保存可)にすると保存できなくて困っています。 二つを有効にした時はどのようにほぞんすればいいですか?

  • エクセルVBAで Cancel=Trueの使い方

    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Cancel = True MsgBox "キャンセルしました" End Sub Private Sub Worksheet_Deactivate() Cancel = True MsgBox "キャンセルしました" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cancel = True MsgBox "キャンセルしました" End Sub 以上のように使ってみましたが、どれも「キャンセルしました」とメッセージは出るものの、直前の操作(入力、シート切替、セル移動)はキャンセルされませんでした。 どこが間違っているのでしょうか?

  • 納得できないactionscript2.0のサンプルコード

    納得できないactionscript2.0のサンプルコード http://oshige.com/flash/f8/chap01/で紹介されている、「01-3フレーム移動を行うクラス」 のサンプルコードなのですが(リンク先でダウンロードしていただけるとありがたいです)、 理解できない部分があります。 サンプルコードによると、 doll.asで変数loopを宣言しており、 またNaviFrame.as内ではloopの値を用いた処理を記述しているのですが、 変数loopに関係する部分を全て削除しても挙動に変化は見られませんでした。 (手元にあるテキストの説明によると、「loopの値がtrueならフレーム1に戻り、 falseならフレーム移動を行わない」とありますが、 フレーム1に戻る/戻らないの処理は、 if(mc._currentframe == mc._totalframes) {……} の条件分岐だけで事足りるし、変数loopを宣言して条件分岐に用いたところで、 何の意味もなしていないと思うのです) 私には変数loopに関する一連の記述の必然性が全く分からないのですが、 どなたか教えていただけないでしょうか? 意味が無いように見えて、実は意味があるのでしょうか。 それとも、単なる誤植の類いなのでしょうか。 初心者ですので、できるだけ平易な解説でお願いします。

    • ベストアンサー
    • Flash
  • VBAを使ったストップウォッチを時/分/秒で・・・

    エクセルでVBAを使って、ストップウォッチの様な形で時間を表示しながら計測したおのですが、以下のマクロだと少数点が表示されており、且つ、60秒に達したときに分に切り替わらない為、分に換算しなければなりません。 Private blnStop As Boolean Private blnStart As Boolean Sub StopWatch()   Dim dblTimer As Double   If blnStart = True Then     blnStop = True     Exit Sub   End If   blnStart = True   blnStop = False   dblTimer = Timer   Do Until blnStop = True     Cells(1, 1) = Int((Timer - dblTimer) * 100) / 100     DoEvents   Loop   blnStart = False   blnStop = False End Sub この様に、常に時間を特定のセルに表示させながら計測する様な形にしたいのですが、どうすれば「1時間20分50秒」の様な表示にできるでしょうか。 どなたかよろしくお願いいたします。

  • API,PathIsDirectoryについて

    よろしくお願いします。 VB6.0sp6,Windows2000professionalsp4です。 VBでのディレクトリの有無の判別方法を検索していて、サンプルをひとつ見つけたのですが・・・↓がコードです。 ------------------------------------------------ Private Declare Function PathIsDirectory Lib "SHLWAPI.DLL" Alias "PathIsDirectoryA" _ (ByVal pszPath As String) As Long ' ' ディレクトリであるかどうか ' Private Function IsDirectory(ByVal strFileName As String) As Boolean ' strFilename : チェックしたいディレクトリ名 ' 戻り値 : ディレクトリであればTrueを返す。 Dim lngResult As Long lngResult = PathIsDirectory(strFileName) IsDirectory = Not (lngResult = 0) 'ここが理解できません End Function Private Sub Command1_Click() Dim strFileName As String strFileName = "C:\WINNT\Profiles\Administrator\My Documents\HEROPA\TestCls\SHLWAPI" Msgbox IsDirectory(strFileName) End Sub -------------------------------------------- IsDirectory関数は、PathIsDirectoryの戻り値がLong型のため、それをBooleanに直すためのものだと思うのですが、 IsDirectory = Not (lngResult = 0)はどういう原理なのでしょうか? これだとlngResultにどんな値が入ろうがIsDirectoryに返されるのはTrueになってしまうと思うのですが(lngResultに0が代入され、それがNotされるから)、しかし実際に実行してみるとちゃんとTrueとFalseを判定しています。いったいどうしてなのでしょうか? それと、PathIsDirectoryの宣言で、関数の戻り値がLongになっていますが、他に見つけたサンプルではBooleanとなっていました。どちらが正しいのでしょうか?

  • excelファイルが意図せず起動

    下記を参考にして、起動時にタイマーを設定してexcelファイルを5分後に自動的に 保存・終了するようにしています。 http://okwave.jp/qa/q2911086.html しかし実際5分を待たず、手動でそのexcelファイルを終了した場合、 後でそのexcelファイルが自動で起動して、そのまま終了しているようです。 この症状をなくしたい場合どのように、記述を加えればよいか教えていただけないでしょうか? 記述は下記です。 '標準プロシージャ Public Operated As Boolean Sub SetTimer() Application.OnTime Now + TimeValue("00:05:00"), "CloseMe" End Sub Sub CloseMe() If Operated Then Operated = False SetTimer Exit Sub End If 'ブックの上書き保存 ActiveWorkbook.Save ' 保存確認を避けるため、保存済みにする ThisWorkbook.Saved = True ' 他にブックが開いていなければ、Excelを終了する If Workbooks.Count <= 1 Then Application.Quit ' 本ブックをClose ThisWorkbook.Close False End Sub 'ワークブックプロシージャ Private Sub Workbook_Open() Operated = False SetTimer End Sub Private Sub Workbook_BeforePrint(Cancel As Boolean) Operated = True End Sub Private Sub Workbook_Deactivate() Operated = True End Sub Private Sub Workbook_Activate() Operated = True End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) Operated = True End Sub