【AS3】RSSリーダーその2(モーションを追加)

前回作ったRSSリーダにモーションを追加しました。横にある「最近の記事」のやつです。
他のブログでやってて、自分のブログにも欲しいと思い、見よう見まねで作りました。
その内スクロールバーもつけたいと思います。

sample


コード(Main.as)

package {

	import flash.display.Sprite;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.events.Event;
	import flash.text.TextFormat;
	import caurina.transitions.*;


	public class Main extends MovieClip {
		private var randomText:RandomText;
		private var test_txt:TextField;
		private var loader:URLLoader;
		private var xml:XML;
		private var tLsit:XMLList;
		private var tTxt;
		private var bg;
		private var oevrLayer;
		private var textFormat;
		private var listMax:int;

		public function Main() {

			var loader:URLLoader = new URLLoader();
			loader.addEventListener(Event.COMPLETE, onLoaded);
			loader.load(new URLRequest("XMLのパス"));

		}
		public function onLoaded(e:Event):void {

			var xml:XML = new XML(e.target.data);
			var tList:XMLList = xml.channel.item;
			listMax = tList.length();

			for (var i = 0; i < listMax; i++) {

				textFormat = new TextFormat();
				textFormat.size = 10;
				
				test_txt = new TextField();
				test_txt.defaultTextFormat = textFormat;
				test_txt.name = "test_txt";
				test_txt.textColor = 0xcccccc;
				test_txt.htmlText += "< a href='" + tList.link[i] + "'	> " + tList.title[i] + "</a";
				test_txt.selectable = false;
				test_txt.width = stage.stageWidth-3;
				stage.addChild(test_txt);
				test_txt.y = 108 + (test_txt.height * i / 4);
				test_txt.x = 3;

				bg= new Sprite();
				addChild(bg);
				bg.graphics.beginFill(0x666666);
				bg.graphics.lineStyle(1, 0);
				bg.graphics.drawRect( 0, 0, stage.stageWidth, 23);
				bg.graphics.endFill();
				bg.buttonMode = true;
				bg.width = stage.stageWidth;
				bg.x = 0;
				bg.y = test_txt.height * i;
				bg.alpha = 0;
				bg.scaleX = 0;

				Tweener.addTween(test_txt, { transition:"easeOutExpo", time:0.4, y:38+(test_txt.height * i / 4), delay:0.04 * i } );
				Tweener.addTween(bg, { transition:"easeOutBack", time:0.4, y:35 + (test_txt.height * i / 4), delay:0.08 * i, alpha:0.06, scaleX:1 } );

				randomText = new RandomText(this, test_txt, 2);
				randomText.start();
			}
		}
	}
}

コード(RandomText.as)
こちらのブログを参考にしました。

package 
{
	import flash.display.DisplayObjectContainer;
	import flash.text.TextField;
	import flash.events.Event;
	
	public class RandomText 
	{
		private var sourceTxt:String = "_/-=+%&$#!?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
		private var content:DisplayObjectContainer;
		private var targetFld:TextField;
		private var targetText:String;
		private var sliceCnt:int;
		private var playTime:uint;
		
		public function RandomText(content:DisplayObjectContainer, targetFld:TextField, time:uint)
		{
			this.content = content;
			this.targetFld = targetFld;
			playTime = time;
			targetText = targetFld.text;
		}
		
		public function start():void
		{
			targetFld.text = "";
			sliceCnt = 0;
			content.addEventListener(Event.ENTER_FRAME, onEnterFrame);	
		}
		
		private function onEnterFrame(e:Event):void 
		{
			++sliceCnt;
			var randomTxt:String = "";
			
			for (var i = 0; i < targetText.length; ++i)
			{
				if (sliceCnt - playTime < i)
				{
					randomTxt = randomTxt+sourceTxt.charAt(Math.floor(Math.random()*sourceTxt.length));
					continue;
				}
				randomTxt = randomTxt+targetText.charAt(i);
			}
			
			targetFld.text = randomTxt;
			if (randomTxt == targetText)
			{
				content.removeEventListener(Event.ENTER_FRAME, onEnterFrame);	
			}
		}
		
	}
	
}

Flaファイル一式

トラックバック(0)

このブログ記事を参照しているブログ一覧: 【AS3】RSSリーダーその2(モーションを追加)

このブログ記事に対するトラックバックURL: http://alwaysfinetuning.com/mt/mt-tb.cgi/58

コメント(1)

おー、カッコいい!!

コメントする

このブログ記事について

このページは、が2008年10月20日 20:57に書いたブログ記事です。

ひとつ前のブログ記事は「【JS】swfobjectコピペ用」です。

次のブログ記事は「【AS3】Loaderをunloadではまった。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。