タイトル募集中3.0

しがないITソルジャーの雑記。

Genius Frameworkを使ってみたのでメモ

http://www.be-interactive.org/index.php?itemid=404
ここをだらだらと眺めてたら,ふとGenius Frameworkが目に留まったのでさっそくhello world

http://www.libspark.org/wiki/seagirl/genius
Spark projectにソースとかあるんだけど,どうすればいいかよくわからないので(えっ
使ってみた的な記事を探すためググってみる.

http://blog.tarotaro.org/archives/160
あったあああああ!!!ありがたやー,しかもFlashDevelopでできるようにプロジェクトの
作り方まで書いてくれてる.あなたがネ申か.

以下,開発環境整えるまでのメモ:
1.http://www.libspark.org/svn/as3/GeniusFramework/branches/tarotarorgからチェックアウト

2.fd-template\ProjectTemplatesのフォルダを適当なところにエクスポート.中に,

  • 50 Genius Framework - Flex
  • 50 Genius Framework - AIR

というフォルダがある.
今回はFlexのほうを使うので中身をFlashDevelopのプロジェクトテンプレートフォルダに
「07 ActionScript 3 - Genius Framework」というフォルダを作ってぶち込む.
両方使うなら適当にフォルダ名変えてどうぞ.

3.New ProjectのActionScript 3の欄にGenius Frameworkの項目ができてるので,クリック.
NameとLocationだけじゃなくて必ずPackageのとこも書く(書かないと階層が狂って動かない).

4.実行してみると「Hello, Genius Framework!」ってでる.

                                • -

http://seagirl.jp/genius/tutorial/samples/srcview/
ここのソースを参考に新しいページを追加してみた.

1.Main.mxmlのViewStackに追加したいページを適当な名前で追加,ここではTest
最初からIntroがあるのでその下にでも入れておく.

<mx:ViewStack id="viewStack" width="100%" height="100%">
	<Intro width="100%" height="100%"/>
	<Test width="100%" height="100%"/>
</mx:ViewStack>

デフォルトのページはcoreの中のApplication.asで設定してるっぽい.

2.Test.mxmlとTestBase.asの作成.

<?xml version="1.0" encoding="utf-8"?>
<TestBase
	xmlns="hoge.views.*"
	xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Text text="Test page." x="20" y="20"/>
</TestBase>
  • TestBase.as
package hoge.views
{
	import jp.seagirl.genius.views.ViewBase;

	public class TestBase extends ViewBase
	{
		override protected function initializeView():void
		{

		}
		
		override protected function updateView():void
		{

		}
	}
}

3.ページ遷移できるようにリンクを貼る.
EFAULT_PAGEがIntroになってるので,Intro.mxmlとIntroBase.asを編集してリンクを追加する.

<?xml version="1.0" encoding="utf-8"?>
<IntroBase
	xmlns="hoge.views.*"
	xmlns:mx="http://www.adobe.com/2006/mxml" 
	xmlns:genius="http://seagirl.jp/genius">
	<mx:Text text="Hello, Genius Framework!" x="20" y="20"/>
	<genius:Link id="link" text="Test" x="20" y="40"/>
</IntroBase>
  • IntroBase.as
package ge.views
{
	import hoge.threads.ChangeStateThread;
	import jp.seagirl.genius.views.ViewBase;
	import jp.seagirl.controls.Link;

	import flash.events.*;
	import mx.controls.Button;

	public class IntroBase extends ViewBase
	{
		public var link:Link;

		override protected function initializeView():void
		{
			link.addEventListener(MouseEvent.CLICK, linkClickHandler);
		}
		
		override protected function updateView():void
		{

		}
		private function linkClickHandler(event:MouseEvent):void
		{
			new ChangeStateThread().startWithData({ page: 'Test' });
		}
	}
}

終わり.これで実行すれば,Testページへのリンクが貼られてる.

中身詳しく見てないから間違ってたらあれだが,とりあえずこれで追加はできた.