Flash/as3/プログラミングメモ
提供: 初心者エンジニアの簡易メモ
目次
- 1 helloworld
- 2 インスタンス削除
- 3 Spriteクラス分割
- 4 図形
- 5 グラフィック初期化
- 6 ステージ幅をas側に記述
- 7 画像埋め込み
- 8 画像入りダイアログ
- 9 イベントで自身のspriteへアクセスする
- 10 spriteなどをキーにして値を入れる
- 11 オブジェクトのクラス名取得
- 12 Sprite追加、削除、存在確認
- 13 一定時間ごとにイベントを発生させる
- 14 フレームレートに依存させず一定時間ごとにイベントを発生させる
- 15 16進数変換
- 16 10進数変換
- 17 色文字列変換
- 18 キャスト
- 19 vector型の使い方
- 20 特定のキーのみ削除
- 21 flashvarsパラメータにアクセス
- 22 as2のgetURL的なものをas3で再現
- 23 array中の要素を削除
- 24 objectのプロパティ有無確認
- 25 手動でイベント発生(dispatchEvent()
- 26 ヒアドキュメント
- 27 リンク集
- 28 注意
helloworld
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class Main extends flash.display.Sprite { public function Main():void { var textField:TextField=new TextField(); textField.text="hello, world."; textField.autoSize=TextFieldAutoSize.LEFT; txtField.border = true; addChild(textField); } } }
インスタンス削除
removeChild(_txt);
Spriteクラス分割
*利用側as import en; var en1:en = new en; en1.x = 100; addChild(en1); *円クラス package { import flash.display.Sprite; import flash.display.Shape; public class en extends Sprite { public function en() { var circle:Shape = new Shape(); circle.graphics.beginFill(0xff0000); circle.graphics.lineStyle(0, 0x000000); circle.graphics.drawCircle(0, 0, 10); circle.graphics.endFill(); addChild(circle); } } }
図形
*四角 var sp:Sprite = new Sprite(); sp.graphics.lineStyle(1, 0xff0000); sp.graphics.drawRect(0, 0, 100, 100); addChild(sp);
グラフィック初期化
sp.graphics.lineStyle(1, 0xff0000); sp.graphics.drawCircle(40, 40, 40); sp.graphics.clear();
ステージ幅をas側に記述
[SWF(width=240, height=240, backgroundColor=0xFFFFFF)] public class Main extends Sprite
画像埋め込み
import flash.display.Bitmap; [Embed(source="assets/sample.png")] private var SamplePng:Class; private var samplePng:Bitmap = new SamplePng(); addChild(samplePng);
画像入りダイアログ
import mx.controls.Alert; [Embed(source="../../../assets/sample.png")] private static const SamplePng:Class; Alert.show("サンプル", "サンプル", Alert.OK, null, null, SamplePng);
イベントで自身のspriteへアクセスする
private function click1(evt:MouseEvent):void { trace(evt.target);
spriteなどをキーにして値を入れる
import flash.utils.Dictionary; import flash.display.Sprite; import flash.events.MouseEvent; public var dictionary:Dictionary; dictionary = new Dictionary(true); for (var n:uint = 0; n < 3; n++) { var sp:Sprite = new Sprite(); sp.graphics.beginFill(0xFFCC00); sp.graphics.drawCircle(40, 40, 40); addChild(sp); sp.addEventListener(MouseEvent.CLICK, click1, false, 0, true); sp.x = n * 50; dictionary[sp] = n; } private function click1(evt:MouseEvent):void { trace(dictionary[evt.target]); }
オブジェクトのクラス名取得
import flash.utils.getQualifiedClassName; trace(getQualifiedClassName(obj));
Sprite追加、削除、存在確認
addChild(sp); removeChild(sp); contains(sp); // true,false
一定時間ごとにイベントを発生させる
addEventListener(Event.ENTER_FRAME, onEnterFrame); public function onEnterFrame(event:Event):void{}
フレームレートに依存させず一定時間ごとにイベントを発生させる
var wait:uint = setInterval(timerEvent, 300); public function timerEvent():void{}
16進数変換
var i:int = 15; trace(i.toString(16)); // f
10進数変換
parseInt(string, 16));
色文字列変換
var color:Number = 0x00ff00; var color16:String = String("000000" + color.toString(16)).substr(-6);
キャスト
String(10);
vector型の使い方
var vec:Vector.<String> = new Vector.<String>(); vec[0] = "test"; var vec2:Vector.<Number> = new Vector.<Number>(); vec2[0] = 1;
特定のキーのみ削除
var obj = {"hoge" : "hogehoge", "piyo" : "piyopiyo"}; delete obj.hoge;
flashvarsパラメータにアクセス
var vars:Object = loaderInfo.parameters;
as2のgetURL的なものをas3で再現
import flash.net.navigateToURL; import flash.net.URLRequest; import flash.events.MouseEvent; public class Main extends sprite { public function Main() { // マウスクリックイベントハンドラ設定 addEventListener(MouseEvent.CLICK, onClick); } // マウスクリックイベント public function onClick(event:MouseEvent):void { // URLRequestを設定 var request:URLRequest = new URLRequest("http://www.google.com"); // 実際にページに飛ぶ navigateToURL(request); } }
array中の要素を削除
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, spliced); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
objectのプロパティ有無確認
var obj:Object = { a:"foo", b:"bar" }; trace(obj.hasOwnProperty('a')); //true
手動でイベント発生(dispatchEvent()
sprite1.addEventListener(MouseEvent.CLICK, clickSprite1); sprite1.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); // clickイベント発生 function clickSprite1(event:MouseEvent):void { trace(event.type); }
ヒアドキュメント
text.htmlText = <><![CDATA[ <a href='/' target='_blank'><font color='#0000ff'><u>text</u></font></a> ]]></>;
リンク集
as3メモ http://www.saturn.dti.ne.jp/~npaka/flash/as30/index.html
注意
as3プロジェクトでは、Alertなどのmx.controls.*は利用できない