【AS3】RSSリーダーその2(モーションを追加)
前回作ったRSSリーダにモーションを追加しました。横にある「最近の記事」のやつです。
他のブログでやってて、自分のブログにも欲しいと思い、見よう見まねで作りました。
その内スクロールバーもつけたいと思います。
sample
その内スクロールバーもつけたいと思います。
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);
}
}
}
}
トラックバック(0)
このブログ記事を参照しているブログ一覧: 【AS3】RSSリーダーその2(モーションを追加)
このブログ記事に対するトラックバックURL: http://alwaysfinetuning.com/mt/mt-tb.cgi/58


おー、カッコいい!!