Hatena::Groupactionscript

ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記

2008年07月19日 土曜日ActionScriptの文法

Flex3でコンパイルするときに背景色を白くする

| 04:32 | Flex3でコンパイルするときに背景色を白くする - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - Flex3でコンパイルするときに背景色を白くする - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 Flex3でコンパイルするときに背景色を白くする - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

背景色が白のほうが、何かして色のあるオブジェクトを描画したときにわかりやすいです(たぶんね)。

そこで、コンパイルするときに背景色が常に白くなるように、flex-config.xmlに追記

<flex-config>
(略)
<default-background-color>0xffffff</default-background-color>
</flex-config>

参考

イベント

| 04:30 | イベント - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - イベント - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 イベント - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

イベントの登録

stage.addEventListener("click", clickHandler);
  • stageは、Flash全体を表す表示オブジェクト(らしい)
    • ということは表示オブジェクトは別に作れる?
    • Spriteでつくるオブジェクトは表示オブジェクトじゃないのかなあ?
  • addEventListener()
    • JavaScript
    • stageにイベントを登録している(stageオブジェクトがイベントの監視をしている)
    • clickイベントで実行するイベントハンドラを登録する

イベントハンドラ

private function clickHandler(event:MouseEvent):void{
 処理
}
  • イベントから渡されるオブジェクトも型がある!
  • 戻り値は常にないらしい
  • イベント中でaddChildなどをするときの動作が、JavaScriptと異なる!
    • この状況でJavaScriptでのaddChild()は、clickHandlerのaddChild()を利用することになるはず
    • ActionScriptでは、stageのaddChild()を利用している
      • インスタンスのメソッドを利用している
      • インスタンスに関連付けられたメソッド(この場合addChild())を「バインドメソッド」という
      • まさか、JavaScriptの勉強をすることになるとは思わなかった(Prototype.jsbindが出てくるはず)

イベントは伝播する

  • JavaScriptにはなかったよね?
  • イベントはどんどん伝播する
    • 子から親へ伝播する
  • ということで、伝播をとめるstopPropagation()メソッドがある
  • イベントには段階がある
    • この段階を判別するメソッドもある
  • どこでイベントが発生したのかもわかる

描画について

| 03:46 | 描画について - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - 描画について - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 描画について - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

線を引く

  • 四角、円、楕円などはかける
  • でも三角形は描けない
    • ええ...

三角形

s1.graphics.moveTo(x, y);
s1.graphics.lineTo(x, y);
  • 座標の移動(moveTo())をして、線を描く(lineTo())で行う

曲線

  • ベジェ曲線が描ける
    • とりあえず、おいておこう

面を塗る

  • beginFill()メソッド
    • 単純に色を塗る
  • beginGradientFill()メソッド
    • グラデーションで色を塗る

フィルタ(というか効果?)をつける

  • filterというプロパティに色々
    • DropShadowFilter() → ドロップシャドー
    • BlurFilter() → ブラー

テキスト表示

  • 前やった

描画について

  • いろいろ出来る
  • 種類が豊富すぎて驚き
    • HTML+CSSで表現できることじゃない
    • 図形を描くことができるスクリプト言語という感じ
    • でも、数学は知っていたほうがいいかも

変数を宣言する

| 19:11 | 変数を宣言する - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - 変数を宣言する - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 変数を宣言する - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

サンプル

var 変数名:型;
  • 見慣れない書き方
  • 型がきっちりあります
    • 型というものなのかがわかりませんが...

クラスのファンクション

| 19:05 | クラスのファンクション - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - クラスのファンクション - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 クラスのファンクション - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

サンプル

public function ClassName():void{
 //インスタンス変数
 private const hogehoge:型 = 値
  private var hogehoge:型 = 値
 //処理
}

public

  • 属性
  • これもJavaっぽい。PHP5でもありますね

ClassName()

  • ファンクション名
  • クラス名とファンクション名が同じときは、コンストラクタとなる
    • Rubyとは違うね

void

  • 戻り値
  • javaとかもこんな風に書いたっけ?(忘れた)

インスタンス変数

  • const → 定数(書き換え不可)
  • var → 変数(書き換え可能)

クラスの定義

| 18:57 | クラスの定義 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - クラスの定義 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 クラスの定義 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

サンプル

public class ClassName extends Sprite {
 クラスの中身
}

public

  • Javaっぽい
  • クラス属性(色々ある)

extends

  • 継承

ClassName

  • 大文字始まりがいいのかな