2009-09-10

XMLをパース

↓こんなXML(test.xml)を作って、
<?xml version="1.0" encoding="UTF-8" ?>


Apple
MacBook Pro
Job


Apple
iPhone 3G
Contact


Apple
Xcode
Develop



Flashでパースする。
var urlLoader:URLLoader = new URLLoader();
var testXML:XML;
var urlRequest:URLRequest = new URLRequest("test.xml");
urlLoader.load(urlRequest);
urlLoader.addEventListener(Event.COMPLETE, xmlLoaded);

function xmlLoaded(event:Event) {
 testXML = XML(urlLoader.data);
 var itemNum = testXML.item.length();
 
 for each (var element:Object in testXML.item) {
  trace(element.maker);
  trace(element.product);
  trace(element.use);
 }
}

正規表現

メールアドレスと電話番号の書式をチェック。
var emailPattern:RegExp = /([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/;
var phonePattern:RegExp = /^\d{2,3}-\d{1,4}-\d{4}$/;

var mailCheck:Boolean = emailPattern.test("aaa@bbb.ccc");
var phoneCheck:Boolean = phonePattern.test("03-1234-5678");

メール送信スクリプトにクエリを送る

var mailVar:URLVariables = new URLVariables();
mailVar.email = "aaa@bbb.ccc";
mailVar.subject = "Test";
mailVar.body = "Hello, world!";

var mailReq:URLRequest = new URLRequest();
mailReq.url = "sendmail.php";
mailReq.data = mailVar;
mailReq.method = URLRequestMethod.POST;
sendToURL(mailReq);

2009-09-09

ボタンのイベントリスナを一括登録

ボタンが30個とかのときに便利。
// ボタンの数だけループしてイベントリスナを登録
for (var i:uint = 1; i < 3; i++ ) {
 this["btn" + i].addEventListener(MouseEvent.CLICK, onClick);
}

// event.targetで処理を分岐
function onClick(event:MouseEvent):void {
 switch (event.target) {
  case btn1:
  //
  break;
  case btn2:
  //
  break;
  case btn3:
  //
  break;
  default:
  //
 }
}

Tweenerで色をトゥイーン

import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;

ColorShortcuts.init();
Tweener.addTween(_mc, {_color:0x264292, time:0.5, transition:"linear"});
※色を戻す時はnull

Tweenerでトゥイーン

毎回忘れるのでコピー用に。
import caurina.transitions.Tweener;
Tweener.addTween(_mc, {x:100, time:0.5, transition:"easein"});

2009-09-01

エンコーディング変換

※Windowsでは文字化けするので注意。
var eucStringUrl = new URLRequest("euc.txt");
var loader:URLLoader = new URLLoader();

loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, loaderComplete);
loader.load(eucStringUrl);

function loaderComplete(event:Event):void {
 var bytes:ByteArray = event.target.data;
 var utf8String:String = bytes.readMultiByte(bytes.length, "euc-jp");
 trace(utf8String);
}