forked from: forked from: クリックゲーム(作成中
♥0 |
Line 165 |
Modified 2010-05-06 21:46:58 |
MIT License
archived:2017-03-20 12:59:12
ActionScript3 source code
/**
* Copyright nayu ( http://wonderfl.net/user/nayu )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/lsOv
*/
<?xml version="1.0" encoding="utf-8"?>
<!-- forked from hacker_n_c3zfz7's forked from: クリックゲーム(作成中 -->
<!-- forked from matubo's クリックゲーム(作成中 -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" horizontalAlign="center" verticalAlign="middle">
<mx:Script>
<![CDATA[
import mx.controls.*;
import mx.events.*;
import mx.formatters.*;
import mx.graphics.codec.*;
import flash.external.*;
import flash.utils.getTimer;
import flash.utils.Timer;
import flash.display.Sprite;
import flash.text.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLVariables;
private var onGame:Boolean = false;//ゲーム中か
private var timer:Timer =new Timer(1000);//時間
private var startTime:Number;//開始時間
private var point:Number =1;//得点
private var j:uint = 0;
private var value:Number;
private var init:uint = 50;
private var initTime:int =30;
// ゲーム開始
private function onStartButtonClick():void {
//ゲーム中は開始ボタン押せないよ!
if(onGame){
return;
}
onGame = true;
//初期化
cvs.visible = true;
point = 1;
pt.text = "0";
j = 0;
cvs.removeAllChildren();
//初期値個撒く
makeButton(init);
// 開始時刻を取得
startTime = getTimer();
// タイマーをスタート
timer.addEventListener(TimerEvent.TIMER, onTimerTick);
timer.start();
}
//時間管理
private function onTimerTick(event:TimerEvent):void {
// 経過時間(秒)
var elapsedTime:int = (getTimer() - startTime)/1000;
// 制限時間N秒から経過時間を引く
var dispTime:int = initTime - elapsedTime;
// 表示時刻をフォーマットし、ラベルに表示する
if(dispTime >= 60) {
var min:int = dispTime/60;
var sec:int = dispTime - 60*min;
timeLabel.text = formatTime(min, sec);
} else if(dispTime >= 0) {
timeLabel.text = formatTime(0, dispTime);
} else {
timeLabel.text = "--:--";
timer.stop();
onGame = false;
cvs.visible = false;
result();
}
}
//表示時刻のフォーマット
private function formatTime(min:int, sec:int):String {
var minString:String = "";
var secString:String = "";
if(min < 10) {
minString = "0" + String(min);
} else {
minString = String(min);
}
if(sec < 10) {
secString = "0" + String(sec);
} else {
secString = String(sec);
}
return minString.concat(":").concat(secString);
}
//判定
private function onNumberButtonClick(n:Number):void {
if(!onGame){
return;
}
//一致したらボタン作って消す
if(n==init){
pt.text = String(point++);
makeButton(1);
cvs.removeChildAt(n);
}
}
//ボタン作成
private function makeButton(add:uint):void {
var manyButton:Button;
var k:int;
var i:int = 1;
for(i; i<=add; i++){
k = i + j;
manyButton = new Button();
//ボタンをランダム座標に作成
manyButton.x = Math.floor (Math.random () * 290) + 1;
manyButton.y = Math.floor (Math.random () * 200) + 1;
manyButton.width = 50;
manyButton.height = 30;
manyButton.id = ""+k;
manyButton.label = ""+k;
//manyButton.label.fontSize=20;
//クリックされたら判定
manyButton.addEventListener(
MouseEvent.CLICK,
function(event:MouseEvent):void{
onNumberButtonClick(cvs.getChildIndex(DisplayObject(event.target)) + 1);
}
);
//cvs.addChild(manyButton);
cvs.addChildAt(manyButton,0);
}
j = k;
}
//結果を表示
private function result():void
{
//ランキングに登録しますか?
var alert:Alert = Alert.show( user.text + "さんの点数は" + ( point-1 ) + " 点でした。ランキングに登録しますか?。","結果発表",
Alert.YES | Alert.NO,this,regBtnClicked);
}
//ランキング登録
function regBtnClicked(evt:CloseEvent):void
{
//YESが押されたら
if(evt.detail == Alert.YES){
//登録
Alert.show("登録完了しました。");
}
}
function ranking():void
{
//var vars = new LoadVars ();
//vars.load("http://o-tb.net/game/test.txt");
//trace(vars.str);
}
]]>
</mx:Script>
<mx:Panel
title="クリックゲーム(^ω^)"
horizontalAlign="center"
>
<mx:VBox>
<mx:HBox>
<mx:Label text="点数:" fontSize="16"/>
<mx:Label text="0" id="pt" fontSize="16"/>
<mx:Label text="時間:" fontSize="16"/>
<mx:Label text="00:30" id="timeLabel" fontSize="16"/>
</mx:HBox>
<mx:HBox>
<mx:Label text="名前:" fontSize="16"/>
<mx:TextInput id="user" width="100" height="30" fontSize="16" />
<mx:Button
id="btn_S"
label="開始"
click="onStartButtonClick()"
width="50"
height="30"
fontSize="10"
/>
<mx:Button
id="btn_R"
label="ランキングを見る"
click="ranking()"
width="120"
height="30"
fontSize="10"
/>
</mx:HBox>
</mx:VBox>
<mx:Canvas
id="cvs"
borderStyle="solid"
width="350"
height="250"
top="50"
>
</mx:Canvas>
</mx:Panel>
</mx:Application>