0

as3 は次のとおりです。

import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequestMethod;
import flash.events.Event;
import flash.display.MovieClip;


wheeler.guide.visible = false;
center.addEventListener(MouseEvent.CLICK, rotateHorizontal);

Stop_mc.addEventListener(MouseEvent.CLICK, stopspin);

function rotateHorizontal(e:MouseEvent):void
{
    stage.addEventListener(Event.ENTER_FRAME,spinner);

}

var mcbtn:MovieClip;
var prizes:Array = new Array(0,180,0,40,30,0,80,75,0,10,0,25,120,0);
var prizewon:int;

for (var i:int=0; i<14; ++i)
{
    mcbtn = wheeler["btn" + (i + 1)];

    if (! mcbtn || ! prizes[i])
    {
        continue;
    }

    mcbtn.txt.text = "Earn " + String(prizes[i]) + " messages";
}

function spinner(e:Event)
{
    wheeler.rotationZ +=  15;
    pointer_txt.text = " ";

    if (wheeler.rotationZ > 360)
    {
        wheeler.rotationZ = wheeler.rotationZ - 360;
    }
    //trace(wheeler.rotationZ);
}

function completed(event:Event):void
{
    if (event.target.data.success == "true")
    {
        trace("Completed");
    }
}

function stopspin(e:Event):void
{
    var txt:String;
    stage.removeEventListener(Event.ENTER_FRAME,spinner);
    prizewon = -1;
    prizewon = (14 - Math.floor(wheeler.rotationZ / (360 / 14)));

    if (prizes[prizewon - 1])
    {
        txt = "You have earned " + prizes[prizewon - 1] + " Messages";
    }
    else
    {
        txt = "You have earned no Messages";
    }

    pointer_txt.text = txt;

    var phpVar:URLVariables = new URLVariables();
    phpVar.code_txt = code_txt.text;
    phpVar.name_txt = name_txt.text;
    phpVar.phone = phone_txt.text;
    phpVar.Result = pointer_txt.text;
    var phpLoader:URLLoader = new URLLoader(phpFileRequest);
    var phpFileRequest:URLRequest = new

 URLRequest("http://localhost/spin_webapp/deposit.php");
    phpFileRequest.method = URLRequestMethod.POST;
    phpFileRequest.data = phpVar;
    phpLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

    phpLoader.addEventListener(Event.COMPLETE,completed);
    phpLoader.load(phpFileRequest);
}
4

1 に答える 1

0

テキストフィールドでのキー押下を処理するイベントを作成する必要があります。

キープレスが発生するたびに、キープレス イベント ハンドラー関数は、テキスト フィールドが NULL かどうかをチェックするか、他の検証を実行します。すべて問題なければ、 のようなフラグを設定しname_txt__valid=TRUEます。

次にname_txt__valid, phone_txt__validpointer_txt__validすべての場合TRUEはムービークリップ ボタンを表示し、そうでない場合は非表示にします。

明らかに、テキストフィールドが有効であることをユーザーに通知する必要があります。そうしないと、ボタンが消えた理由に気付かないでしょう。


アップデート:

申し訳ありませんが、現在、以下のコードをテストすることはできませんが、以下で行う必要があると思われることをより詳しく説明する必要があります.

初期化中にリスナーを作成するための構文 :

name_txt.addEventListener(Event.CHANGE,name_txt_ChangeListener);
//Also lets initialize our flags...
name_txt__valid=false;
phone_txt__valid=false;
pointer_txt__valid=false;
center.enabled = false;

参照: AddchangeeventtoTextField

次に、検証ロジックを追加するだけです。

private function name_txt_ChangeListener (e:Event):void {
...
  trace("Text field event triggered");
  //Check if text is null or invalid
  //If valid then set a flag like name_txt__valid=TRUE
  if (name_txt.text == "") {
     name_txt__valid=false;      
  } else {
     name_txt__valid=true;      
  }

  //Then make a function call to decide whether to show/hide the center button.
  showHideCenterButton();
...
}

function showHideCenterButton(){
...
  //If  name_txt__valid, phone_txt__valid and pointer_txt__valid, 
  // all are TRUE then enable the button. Else disable it like center.enabled = false;
  if( (name_txt__valid==true) &&
      (phone_txt__valid==true) &&
      (pointer_txt__valid==true)
    ) {
       center.enabled = true;
    } else {
       center.enabled = false;
    }
...
}
于 2012-12-13T10:26:11.263 に答える