ドット絵を作りました。

48×48で。
簡単に、ロックマンの敵キャラをモデルに。

そしてもう一つ。キノコ。

 


http://w3q.jp/

W3QはWeb制作者のお悩みを解決するQ&Aとキュレーションサービスです。

何でも解決できそうです。

11月 182011
 

テーブルで入力フォームを作りました。
忘れてしまうので、メモです。
テーブルを組む場合、始めに初期化を行う。

また、テーブル要素の中にテーブル要素を入れて入れ子にも出来る。
問い合わせフォームを作った時に、入力フォームの幅を合わせるのに役立った。
入れ子にした時は、IE6で崩れてしまうので、widthの長さに注意。セルの横幅の合計を統一する。

<TR>~</TR>要素はTableRowの略で、横方向の一行を定義。
<TH>~</TH>要素はTableHeaderの略で、セルの内容が「見出し」となるヘッダセルを作成。
<TD>~</TD>要素はTable Dataの略で、セルの内容が「データ」となるデータセルを作成。

  使用例
<table celspacing="4" cellpadding="12" border="0" align="center">
<caption>サービスプラン</caption>
    <tr bgcolor=orange>
         <th scope="col">項目</th>
         <th scope="col">プランA</th>
         <th scope="col">プランB</th>
         <th scope="col">プランC</th>
         <th scope="col">プレミアム</th>
     </tr>
     
<table celspacing="4" cellpadding="12" border="0" align="center">
<caption>サービスプラン</caption>
    <tr bgcolor=orange>
        <th scope="col">項目</th>
        <th scope="col">プランA</th>
        <th scope="col">プランB</th>
        <th scope="col">プランC</th>
        <th scope="col">プレミアム</th>
    </tr>
    <tr bgcolor=lightblue>
    <th bgcolor=orange scope="col" cols=1>容量</th>
    <td>1GB</td>
    <td></td>
    <td>
    
    <table celspacing="4" cellpadding="12" border="0" align="center">
        <caption>サービスプラン</caption>
            <tr bgcolor=lightgreen>
                <th bgcolor=lightgreen scope="col">項目</th>
                <th bgcolor=lightgreen scope="col">プランA</th>
                <th bgcolor=lightgreen scope="col">プランB</th>
                <th bgcolor=lightgreen scope="col">プランC</th>
                <th bgcolor=lightgreen scope="col">プレミアム</th>
            </tr>
            <tr bgcolor=lightgreen>
                <th bgcolor=lightgreen scope="col" cols=1>容量</th>
                <td bgcolor=lightgreen>1GB</td>
                <td bgcolor=lightgreen></td>
                <td bgcolor=lightgreen>5GB</td>
                <td bgcolor=lightgreen></td>
            </tr>
            <tr bgcolor=lightgreen>
                <th bgcolor=lightgreen scope="col">サブドメイン</th>
                <td bgcolor=lightgreen>1つ</td>
                <td bgcolor=lightgreen>2つ</td>
                <td bgcolor=lightgreen>3つ</td>
                <td bgcolor=lightgreen>4つ</td>
            </tr>
        </table>
    </td>
    <td></td>
    </tr>
    <tr>
        <th bgcolor=orange scope="col">料金</th>
        <td bgcolor=orange>2000円</td>
        <td bgcolor=orange>4000円</td>
        <td bgcolor=orange>5000円</td>
        <td bgcolor=orange>6000円</td>
    </tr>
</table>
 
項目 プランA プランB プランC プレミアム
容量 1GB
サービスプラン
項目 プランA プランB プランC プレミアム
容量 1GB 5GB
サブドメイン 1つ 2つ 3つ 4つ
料金 2000円 4000円 5000円 6000円
 

演算子

trace(5+10);
trace(100-42);
trace(int(100/3));
trace((100-3)*20);

比較演算子

trace(num1==num1);
trace(num1>num2);
trace(num15)&&(10trace((1015));

型変換
int型に変換して演算

trace(int("10") - 5);

※数値として読み取れないとき、intやuintでは「0」を返す。Numberでは「NaN」(非数)を返す。

文字列に型変換

trace(String(10) + String(24));

10と24を文字列で返す。

文字列を数値Numberに型変換して、変数「num」に代入する。

var num:Number = Number ("123.45");

条件分岐

var num :int = 0;
trace("ifステートメント実行前");

if(num < -1){
trace("trueの処理");
}else{
trace("flaseの処理")
}

trace("ifステートメント実行後");

//ifステートメント実行前
//flaseの処理
//ifステートメント実行後

条件分岐その1

var num:int=61;

if (num<=10) {
     trace("numが11以下の処理");

} else if (num <= 20) {
     trace("numが11から20の処理");

} else if (num <= 60) {
     trace("numが21から60の処理");

} else {
     trace("それ以外");
}

switch文

var text01:String = "たま"

switch (text01) {
     case "たま" :

     trace("たま");
     break;

     case "はち":

     trace("はち");
     break;

     default :
     trace("犬の名前");
}

条件分岐その2

var num:Number = 10;

if(num <= 10){
     trace("10より小さい")
}

var str:String = "こんにちは";

if(str == "こんにちは"){
     trace("true")
}

var num2:Number = 3.14;

if(num2 == 3.15){
     trace("true")
}else{
     trace("3.14以外");

}

条件分岐その3

var score:Number = 90;

if (score<=30){
	trace("可");
}else if(score<=80){
	trace("良");
}else{
	trace("優")
}

条件分岐その3

var str2 :String = "D";

if(str2 == "A"){
     trace("Aを選んだ。")
}else if(str2 == "B"){
     trace("Bを選んだ。")
}else if(str2 == "C"){
     trace("Cを選んだ")
}else{
     trace("それ以外")
}

条件分岐その4

var str3 :Number = 70;
if(str3 >= 50 &&  str3 < 100){
     trace("値は適正です。")
}

forループ

for (var i:int = 0; i< 5; i++){
     trace("5回繰り返します。")
}

boyNameがString「のび太」の時、かつ、yearが「10」のとき

var boyName:String = "のび太";
var year:Number = 10;

if(boyName =="のび太" || year <= 10){
     trace("条件を両方満たしています")
}

mcを10個横に等間隔にaddchildする。

var mc:MovieClip = new Mc;
var mcWi:Number = 10;

for (var i:int = 0; i< 10; i++){
     mc = new Mc();
     mc.x = mcWi +i*(mc.width + mcWi);
     addChild(mc);
}

10%の確率で「当たり」

while (Math.random()>0.1) {
     trace("はずれを引きました。");
}
trace("当たり")

30%の確率でループ処理を中断

for (var i:int = 1; i<=10; i++) {
     trace(i + "回目のチャレンジを実行しています。");

     //30%の確率でループ処理を中断
     if(Math.random() < 0.3){
                         trace("ループを中断します");
                         break;
     }
}

//10回処理を繰り返すが、3の倍数の時だけは任意の処理を実行しない

for (var i:int=1; i<=10; i++){
     trace( i+ "回目の処理をしています。");

     //3の倍数だけ残りの処理を中断
     if(i % 3 == 0){
          continue;
     }
     trace(i + "は、3の倍数ではありません。");
}

3の倍数をはずして表示

for(var i:int = 1; i<11 ;i++){
     if(i % 3 == 0){
          continue;

          }
     trace("変数iの値は"+ i + "です");
}

繰り返し処理を入れ子(ネスト)する。

for (var i:int = 1; i<= 3; i++){ //外側の条件式
     trace("chpter"+ i);
     for(var j:int = 1; j<= 2; j++){ //内側の条件式

     trace(i + "-" + j);
     }
}

出力結果//
chpter1
1-1
1-2
chpter2
2-1
2-2
chpter3
3-1
3-2

11月 132011
 

This movie requires Flash Player 9

This movie requires Flash Player 9

This movie requires Flash Player 9

 

http://www.otsuka.co.jp/ohn/

なんかいいなあ。

具体的に何がいいのか分からんけども。

 

カモがころころ飛ばされていく動画です。

それだけ

かわいすぎw

 

Particleについて勉強します。
パーティクルは、液体、花火、爆発、雪、炎のような多くの粒子からなる物体をシミュレーションする方法の一つ。
パーティクルシステムは通常、オブジェクト指向の手法で書かれます。

ParticleDemo.as

package {

	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.MovieClip;

	public class ParticleDemo extends Sprite {

//		public var emitterX:Number = stage.stageWidth/2;
//		public var emitterY:Number = stage.stageHeight/2;

		public function ParticleDemo() {
			//コンストラクタ(初期処理)
			stage.addEventListener(Event.ENTER_FRAME,onLoop, false, 0, true);

		}

		private function onLoop(evt:Event):void {

			var p:Particle = new Particle(mouseX,
										  mouseY,
										  Math.random()*11 - 6,//x速度の値 6を引いてオフセット
										  Math.random()*-15, //y速度の値 マイナスの記号だと上方向にあがる。
										  0.5,//重力
										  Math.random()*0xFFFFFF);//ランダムな色
			addChild(p);

		}

	}
}

重力が0.5でy速度の値の値が-15の場合がこれです。

package {

	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.MovieClip;

	public class ParticleDemo extends Sprite {

		public function ParticleDemo() {
			//コンストラクタ(初期処理)
			stage.addEventListener(Event.ENTER_FRAME,onLoop, false, 0, true);

		}

		private function onLoop(evt:Event):void {

			var p:Particle = new Particle(mouseX,
										  mouseY,
										  Math.random()*11 - 6,//x速度の値 6を引いてオフセット
										  Math.random()*-1, //y速度の値 マイナスの記号だと上方向にあがる。
										  2,//重力
										  Math.random()*0xFFFFFF);//ランダムな色
			addChild(p);

		}

	}
}

重力が2で、y速度の値の値が-1の場合がこれです。

 

		private function onRun(evt:Event):void {
			_yvel += _grav;
			_xpos += _xvel;
			_ypos += _yvel;
			x = _xpos;
			y = _ypos;
			if (_xpos < 0 || _ypos < 0 || _xpos > stage.stageWidth || _ypos > stage.stageHeight) {
			   removeEventListener(Event.ENTER_FRAME, onRun);
			   parent.removeChild(this);
			}
		}

 
これにより、パーティクルがステージの左、右、下を超えてステージの外に出るとイベントリスナーを削除して表示リストからも削除しています。
 

 

 

for文の練習のために、きもちの悪いサンプルを作ります。

やりたいこと

  • 画面いっぱいに矢印を敷き詰める。
  • 矢印がマウスを見ながら回転する。

変数を宣言。
横の最大列数(9、19、29)
縦位置(何行目なのか)
横位置(何列目なのか)

var maxTate:Number = 19;
var tate:Number = 0;
var yoko:Number = 0;

for文をまわして300個の矢印を作ります。

for (var i:Number = 0; i < 300 ; i ++){
	var arrowMc:MovieClip = new ArrowMc();
	arrowMc.name = "arrow"+i;
	/*
		arrowMcをx軸をyoko[45(arrowMcの横幅)×何列目(0~9)]に、
		y軸をtate[40(arrowMcの縦幅)×何行目]配置する

	*/
	arrowMc.x = 30 * yoko;
	arrowMc.y = tate;

	/*
		maxTateが9、19、29の時は
		行を一段下へ下げるので、tateに40(arrowMcの縦幅分)増やす
		そして、maxTateも次の最大列にするために10(MAX列分)増やす
	*/
	if(maxTate == i){
		tate += 30;
		maxTate += 20;
	}

	/*
		次に配置するarrowMcの横位置を設定するために
		yokoを1列分増やす
		1行は19個まで、
		yokoが19になったら、0にリセット
	*/
	yoko += 1;
	if(yoko > 19){
		trace(yoko);
		yoko = 0;
	}

	//arrowMc.x = arrowMc.y = 20 + i * 10;
	addChild(arrowMc);

}

 

完成がこちらです。

 

 

 

外部 XML ドキュメントの読み込み

URLLoaderクラスとはリファレンスにあるとおり外部リソースをロードするために使用します。URLLoaderインスタンスにはdataFormatというプロパティがあります。

dataFormatプロパティの値がURLLoaderDataFormat.TEXTの場合、受け取るデータは、ロードされたファイルのテキストを含むストリングです。

dataFormat : String = “text”
ダウンロードしたデータがテキスト(URLLoaderDataFormat.TEXT)生のバイナリデータ (URLLoaderDataFormat.BINARY)、または URL エンコードされた変数(URLLoaderDataFormat.VARIABLES)のいずれであるかを制御します。
ActionScript 3.0 言語およびコンポーネントリファレンス

URLLoader クラスは、指定した URL からテキスト、バイナリデータ、または URL エンコード形式の変数をダウンロードする際に使用します。動的なデータ駆動アプリケーションで使用するテキストファイル、XML、その他の情報をダウン ロードする場合に便利です。
ActionScript 3.0 言語およびコンポーネントリファレンス

URLLoaderを宣言

var urlLoader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("atom.xml");
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;

COMPLETEと、IO_ERRORのリスナー。

urlLoader.addEventListener (Event.COMPLETE , urlLoaderCompleteHandler);
urlLoader.addEventListener (IOErrorEvent.IO_ERROR , URLLoaderIOErrorFunc);
urlLoader.load(req);

ExternalInterfaceでhtmlのjavascriptから読み込む。

function urlLoaderCompleteHandler(evt:Event)
	{
	var textData:String = evt.target.data;
	trace(textData);
	trace("読み込み完了");
	//ExternalInterface.call("hoge" ,textData);
}

function URLLoaderIOErrorFunc(evnet:IOErrorEvent):void{
	trace("ioerrorが発生しました。");
}
 

Adobe Developer Connection (ADC) と連動する開発者向けイベント、ADC MEETUP の第3回目「ADC MEETUP ROUND 03 / MAX RETWEET 」が11月12日(土)に開催されます。

 

 

今年10月に米国ロサンゼルスで開催されたAdobe MAX 2011のテーマです。
無料イベントなので参加します。

Adobe Developer Connection (ADC) と連動する開発者向けイベント、ADC MEETUP の第3回目「ADC MEETUP ROUND 03 / MAX RETWEET 」が11月12日(土)に開催されます。

MAX 2011のGeneral Session(基調講演)で発表されたCreative Cloudの紹介の他、実際にMAXに参加した開発者たちが現地でキャッチしたHTMLやFlash関連の技術情報についても解説していきます。展示コーナーでは、リリース直前のAndroid版 Adobe Touch Appsも体験できます。今回も参加者には、素敵な特典がありますのでどうぞお見逃しなく!

 

セミナー対象者
HTML5やFlashを使った制作や開発に携わる方

参加費
無料事前登録制

定員

400名

ゲストスピーカー

株式会社ピクルス / 山下 美緒
株式会社サイバーエージェント / 大谷 剛
clockmaker.jp / 池田 泰延
大日本印刷株式会社 / 丸山 真実
taiga.jp / 廣畑 大雅

アドビスピーカー

西山 正一
太田 禎一
岩本 崇
轟 啓介

来場者特典もあるようなので。

 

初心者が陥りやすいということで、しっかり覚えておきたいのですが、いかんせん基礎がしっかりしていないのでメモします。

引数の値渡しと参照渡し

多くのプログラミング言語では、値渡しと参照渡しによるパラメータの受け渡しの違いを理解しておくことが重要です。この違いは、コードの設計方法に影響します。
値渡しとは、関数内で使用するためにパラメータの値がローカル変数にコピーされることです。 参照渡しとは、実際の値ではなく、パラメータへの参照のみが渡されることです。

実際の値がコピーされるのではなく、 パラメータとして渡される、変数への参照が作成され、関数内で使用するためにローカル変数に割り当てられます。 関数外の変数への参照では、ローカル変数は元の変数の値を変更する機能を提供します。
ActionScript 3.0 では、値はすべてオブジェクトとして格納されているため、すべてのパラメータは参照渡しです。

しかし、Boolean、Number、int、uint、String などのプリミティブデータ型に属するオブジェクトには、値渡しのように動作する特別な演算子があります。

例えば、次のコードは、xParamと yParamという 2 つの int 型パラメータを定義する passPrimitives()という関数を作成します。この 2 つのパラメータは、passPrimitives()関数の本体内で宣言されるローカル変数に似ています。関数がパラメータ xValueおよび yValueで呼び出されると、パラメータ xParamおよび yParamは、xValueと yValueで表される int オブジェクトへの参照で初期化されます。 パラメータはプリミティブなので、値渡しのように動作します。

xParamと yParamは、初期状態では xValueと yValueオブジェクトへの参照のみが含まれますが、関数本体内の変数の変更によりメモリ内に新しい値のコピーが生成されます。
値渡しとは、関数内で使用するためにパラメータの値がローカル変数にコピーされることです。
参照渡しとは、実際の値ではなく、パラメータへ の参照のみが渡されることです。実際の値がコピーされるのではなく、パラメータとして渡される、変数への参照が作成され、関数内で使用するためにローカル 変数に割り当てられます。
関数外の変数への参照では、ローカル変数は元の変数の値を変更する機能を提供します。ActionScript3.0 では、値はすべてオブジェクトとして格納されているため、すべてのパラメータは参照渡しです。しかし、Boolean、Number、int、uint、 Stringなどのプリミティブデータ型に属するオブジェクトには、値渡しのように動作する特別な演算子があります。

(Flash CS3 ドキュメンテーション より)

何となく概念は分かったような、そうでないような。。

配列(Array)
クラス(Class)
オブジェクト(Object)
は参照渡し。

String
Boolean
MovieClip
は値渡し。

//値渡し
var hoge:String = "hoge";
var bool:Boolean = true;

function foo( val:String , b:Boolean ):void{
     hoge = "hogehoge2";
     val = "fuge";
     b = false;
     trace( hoge );
     trace( bool );
}

foo( hoge , bool );

//参照渡し
var arr:Array = [0,1,2,3];

function bar( array:Array ):void{
     array.push(4);
     trace( array );
     trace( arr );
}

bar( arr );

var arr2:Array = arr;

trace(arr2);

arr2.push(5);

trace(arr2);

trace(arr);

//値渡し
var mc1_copy:MovieClip = mc1;
mc1_copy.alpha = 0.2;

var tf_copy:TextField = tf;
tf.text = "あいうえおかきくけこ";

配列(Array)
クラス(Class)
オブジェクト(Object)
は参照渡し。

String
Boolean
MovieClip
は値渡し。

© 2011 Script.com Suffusion theme by Sayontan Sinha