PHPだぜ
日記 2004年5月19日
正規表現が使えるといいのにな
 スクリプトを書いてそれを読み取って表示するようなものを作るには どうすればよいのだろう?
 正規表現が使えると便利だなーと思いつつ。Googleで"ActionScript 正規表現"と 検索。結果としてわかったことは、ActionScriptのライブラリーとしては 正規表現は扱っていないようだな?
 でも、正規表現のライブラリーを作っている人がいるみたいだな Jurjans.lv というサイトで扱っているらしい。  
 ためしにコピペして見たけどエラーがでた。たぶん、がんばって原因を つかめば使えるようになると思うけどちょっと面倒だな。
 正規表現を使うのはやめることにした。 ( 解説している日本語のサイトも見つからなかった、少し残念 )

ActionsScriptで文字列を使う
 アクションスクリプトのリファレンスを見ていると。Stringという 名前のクラスが存在する。
 とっても機能が豊富なクラスで文字列を配列みたいに扱えたり 特定の文字を検索したり取り出したりできまるクラスのようです。
 (はっ、まずい、 この時まで私は正規表現ってStringクラスみたいな機能のことだと 思っていた。頭の裏が少しぞーとした。)
しかし、もう夜1:00になろうとしている。明日は朝から授業だし、もう寝なくては ならない、授業サボろうかな。(と悪魔のささやきが聞こえる)。
Stringクラスを使ってみる

とりえず動作をチックしてから寝ることにしよう。
登録した文字列の単語を取り出すMovieClip。

	
class Comparison extends NewPrimitive
{
 function Comparison()
	{
	$this->NewPrimitive();
	$this->addObject($this->Object(),"obj");
	$this->_action();
	$this->Compire();
	}

 function _object()
	{
	$this->_object = new SWFShape();
	}
 function _action()
	{
	$this->addAction
	(
	new SWFAction
		("
		var _index;
		var _string;

		Init = function()
		{
		this._index = 0;
		};

		Matching =function(A,B)
		{
		if(A == B)
		{
		return true;
		}
		return false;
		};
		
		Input = function(St)
		{
		_string = St;
		};
		
		Next = function()
		{
		start = _index;
		end = _string.indexOf(' ');
		_index = end;
		return _string.slice(index,end);
		};
		")
	,"Action"
	);
	}
}
	
使ってみる

require "NewPrimitive.php";
require "St.php";

class String extends NewPrimitive
{
 function String()
	{
	$this->NewPrimitive();
	$st = new  Comparison();
	$this->addObject($st->Layer(),"st");
	$this->addObject($this->Object(),"obj");
	$this->_action();
	$this->Compire();
	}

 function _object()
	{
	$this->_object =new SWFTextField();
	$this->_object->setFont(new SWFFont('UTF8'));
	$this->_object->addString("Start");
	}

 function _action()
	{
	$this->addAction
	(
	new SWFAction
		("
	st.Init();
	st.Input('ssdtsdf t sdf y sdgf t sd');
	obj.text = st.Next();
		")
	,"Action"
	);
	}
}
	Ming_setScale(20.0);
	ming_useswfversion(6);

	$class = new String();

	$movie = new SWFMovie();
	$movie->setDimension(400,400);
	$movie->setBackground(250,250,250);
	$movie->setRate(10);

	$movie->add($class->layer());
	$movie->save("Other.swf");
実行結果
寝る前に
特になし

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル