
基礎から学んで、ずっと使える。サンプルデータで着実に学べる。ActionScript 3.0でインタラクティブWebコンテンツ、リッチインターネットアプリケーション開発を本格的にはじめたい人のための解説書。
定価 ¥ 2,940
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
//画像読み込み
var url:String = "amz_lrnAS3.png";
var imageUrl:URLRequest = new URLRequest(url);
var img:Loader = new Loader();
img.load(imageUrl);
addChildAt(img,0);
img.x = 5;
img.y = 5;
//テキスト生成
var heading = new TextField;
var paragraph = new TextField;
paragraph.wordWrap = true;//自動改行を許可
heading.htmlText = "<a href='url'>初めてのActionScript3.0</a>";
paragraph.text = "ActionScript 3.0について学び直したいと思う初心者プログラマーはもとより…";
addChildAt(heading,1);
heading.x = 110;
heading.y = 5;
heading.width = 180;
heading.textColor = 0x0000ff;
addChildAt(paragraph,2);
paragraph.x = 110;
paragraph.y = 18;
paragraph.width = 130;
paragraph.height = 180;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Sprite;
//画像読み込み
var imgUrl:Array = ["http://vosegus.org/blog/img/amz_smhtml.png","amz_dnav.png","amz_lrnAS3.png","amz_js.gif","amz_pgphp.gif","amz_DOM.gif"];
var imgLink:Array = ["url","url","url","url","url","url"];
var n:int = 0;
var positionX:int = 0;
for(var i:int=0;i<imgUrl.length;i+=1){
var sp:Sprite = new Sprite();
var castUrl:String = imgUrl[i];
var imageUrl:URLRequest = new URLRequest(castUrl);
var img:Loader = new Loader();
img.load(imageUrl);
sp.addChild(img)
addChildAt(sp,n);
sp.name = "img"+n;
sp.buttonMode = true;//カーソルを指の形に変更 import flash.display.Sprite Spriteブジェクトのみ
sp.x = positionX;
n+=1;
positionX+=110;
}
//getChildByNameでオブジェクトを参照し、イベントをセット
getChildByName("img0").addEventListener(MouseEvent.MOUSE_UP,function(){setLink(imgLink[0]);});
//最後のSpriteがframeに入ったら
var lastChild:String = "img"+ (imgUrl.length-1);
getChildByName(lastChild).addEventListener(Event.ENTER_FRAME,function(){
//オブジェクトが移動を始める
for(var k:int=0;k<imgUrl.length;k+=1){
getChildByName("img"+k).x -=10;
if(getChildByName("img"+k).x==-100){
getChildByName("img"+k).x = 560;
}
}
});
//リンク設置関数
function setLink(setUrl):void{
//URLRequestを代入
var url:URLRequest = new URLRequest(setUrl);
//ページ移動
navigateToURL(url,"_self");
}
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Sprite;
//テキスト生成
var n:int = 0;
for(var i:int;i<6;i+=1){
var sp:Sprite = new Sprite();
//フォントサイズを指定 テキストをaddChild前に処理
var btn = new TextField();
var fmt:TextFormat = new TextFormat();
fmt.size = 14;
btn.defaultTextFormat = fmt;
sp.name = "btn"+n;
btn.text = "btn"+n;
btn.textColor = 0x0000ff;
sp.addChild(btn);
addChildAt(sp,n);
sp.x = n * 40;
sp.y = 245;
btn.mouseEnabled = false;//テキストフォールドのマウスカーソルを変更させるにはmouseEnabledをfalseに制定
sp.buttonMode = true;
n+=1;
}
//イベントをセット
getChildByName("btn0").addEventListener(MouseEvent.MOUSE_UP,function(){changeImg("no1.png");});
//画像読み込み
var imgSp:Sprite = new Sprite();
var url:String = "no1.png";
var imageUrl:URLRequest = new URLRequest(url);
var img:Loader = new Loader();
imgSp.name = "visual";
img.load(imageUrl);
imgSp.addChild(img)
addChild(imgSp);
//画像再読み込み imgSpの子要素を削除した後、新しい画像を挿入
function changeImg(param){
var chUrl:String = param;
var chImageUrl:URLRequest = new URLRequest(chUrl);
var chImg:Loader = new Loader();
chImg.load(chImageUrl);
chImg.alpha = 0;
//表示されている画像のアルファ値を0になるまでTimerで減算。0になったら新しい画像をアルファ値0で挿入し、1になるまで加算。1になったら処理終了
var timer:Timer=new Timer(50,0);
var flg:Boolean = false;
timer.addEventListener(TimerEvent.TIMER, function(){
if(imgSp.getChildAt(0).alpha>0 && flg == false){
imgSp.getChildAt(0).alpha -= 0.2;
}
else{
flg = true;
imgSp.removeChildAt(0);
imgSp.addChildAt(chImg,0);
imgSp.getChildAt(0).alpha += 0.1;
if(imgSp.getChildAt(0).alpha>1){
timer.stop();
flg = false;
}
}
});
timer.start();
}
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("swf/amenimo.txt");
var field:TextField = new TextField();
field.wordWrap = true;
var fmt:TextFormat = new TextFormat();
fmt.size = 12;
fmt.font = "_ゴシック";
field.defaultTextFormat = fmt;
//読み込みが完了したら関数を実行
loader.addEventListener(Event.COMPLETE,function(){
var setData:String = loader.data;
field.text = setData;
addChild(field);
field.width = 550;
field.height = 260;
});
//テキストファイルの読み込み
loader.load(req);
//テキストフォールド生成
var field:TextField = new TextField();
field.wordWrap = true;
var fmt:TextFormat = new TextFormat();
fmt.size = 12;
fmt.font = "_ゴシック";
field.defaultTextFormat = fmt;
field.width = 200;
field.height = 20;
//リクエスト生成
var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("/blog/atom.xml");
//デフォルトの名前空間を設定
var atom:Namespace = new Namespace("http://www.w3.org/2005/Atom");
default xml namespace = atom;
//読み込みが完了したら関数を実行
loader.addEventListener(Event.COMPLETE, function(){
var setXML:XML = new XML(loader.data);
field.text = setXML.title[0];
addChild(field);
});
//エラーハンドリング
loader.addEventListener(IOErrorEvent.IO_ERROR, function(){
});
//XMLの読み込み
loader.load(req);
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="250" height="40" id="learning5" align="middle">
<param name="FlashVars" value="variable=時代は変わるラガーは変わるな">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="swf/learning5.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="swf/learning5.swf" quality="high" bgcolor="#ffffff" width="250" height="40" name="learning5" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer_jp" FlashVars="variable=時代は変わるラガーは変わるな" />
</object>
var fmt:TextFormat = new TextFormat();
fmt.size = 14;
fmt.font = "_ゴシック";
var btn = new TextField();
btn.defaultTextFormat = fmt;
btn.width = 250;
var sp:Sprite = new Sprite();
sp.name = "btn";
btn.text = "Clickするとalertがでるよ";
btn.textColor = 0x0000ff;
sp.addChild(btn);
addChild(sp);
btn.mouseEnabled = false;//テキストフォールドのマウスカーソルを変更させるにはmouseEnabledをfalseに制定
sp.buttonMode = true;
sp.addEventListener(MouseEvent.CLICK, function(){
//JavaScriptの呼び出し
ExternalInterface.call("alert","パパパパパフィー");
});
//変数を受け取る
var flashVars:Object = this.loaderInfo.parameters;
var variable:String = flashVars['variable'];
var txt = new TextField();
txt.defaultTextFormat = fmt;
txt.text = variable;
addChild(txt);
txt.width = 250;
txt.y = 20;
var req:URLRequest = new URLRequest (file path);
//POST送信
req.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
//送信パラメータ
variables.name0 = "柿の種ふりかけ茶漬け";
req.data = variables;
var loader:URLLoader = new URLLoader (req);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
//データ送信後、値を取得
loader.addEventListener(Event.COMPLETE, function (event:Event):void{
//戻り値を変数に格納
var printdata:URLVariables = new URLVariables(event.target.data);
//テキスト生成
var paragraph = new TextField;
paragraph.width = 200;
paragraph.height = 20;
paragraph.y = 3;
paragraph.text = (printdata.rData);
addChild(paragraph);
}
);
//データ送信
loader.load(req);
$comment = $_POST['name0'];
print "rData=" . $comment;
プロパティ、ビルトイン関数 - ActionScript 3.0 コンポーネントリファレンスガイド
var defY:Number = 30;
var grand:Sprite = new Sprite();
grand.y = defY;
var sp:Sprite = new Sprite();
var grp:Graphics = sp.graphics;
grp.lineStyle(0,0xFFAAAA,1);
grp.beginFill(0xFFAAAA,15);
grp.drawRect(0,0,200,100);
sp.name = "obj";
grand.addChild(sp);
addChild(grand);
var labels:Array = ["移動","拡縮","回転","傾斜","リセット"];
var n:int = 0;
var pos:int = 0;
for(var i:int;i<5;i+=1){
var unit:Sprite = new Sprite();
//フォントサイズを指定 テキストをaddChild前に処理
var btn = new TextField();
var fmt:TextFormat = new TextFormat();
fmt.size = 14;
btn.defaultTextFormat = fmt;
unit.name = "btn"+n;
btn.text = labels[n];
btn.textColor = 0x0000ff;
unit.addChild(btn);
addChildAt(unit,n);
unit.x = n * 40;
unit.y = 1;
btn.mouseEnabled = false;//テキストフォールドのマウスカーソルを変更させるにはmouseEnabledをfalseに制定
unit.buttonMode = true;
n+=1;
}
//移動
getChildByName("btn0").addEventListener(MouseEvent.MOUSE_UP,function(){mtrxTsrate(grand,100,10);});
function mtrxTsrate(target:Sprite,tx:Number,ty:Number){
var mtrx:Matrix = target.transform.matrix;
mtrx.translate(tx,ty);
target.transform.matrix = mtrx;
}
//拡大縮小
getChildByName("btn1").addEventListener(MouseEvent.MOUSE_UP,function(){mtrxScale(sp,2,1.8);});
function mtrxScale(target:Sprite,sx:Number,sy:Number){
var mtrx:Matrix = target.transform.matrix;
mtrx.scale(sx,sy);
target.transform.matrix = mtrx;
}
//回転
getChildByName("btn2").addEventListener(MouseEvent.MOUSE_UP,function(){mtrxRotate(sp,10);});
function mtrxRotate(target:Sprite,c:Number){
var mtrx:Matrix = target.transform.matrix;
var rad = retRad(c);
mtrx.rotate(rad);
target.transform.matrix = mtrx;
}
//傾斜
var c:Number = 0;
getChildByName("btn3").addEventListener(MouseEvent.MOUSE_UP,function(){mtrxInclination(sp);});
function mtrxInclination(target:Sprite){
var mtrx:Matrix = target.transform.matrix;
c += 20;
mtrx.c = Math.tan(retRad(c));
target.transform.matrix = mtrx;
}
//リセット
getChildByName("btn4").addEventListener(MouseEvent.MOUSE_UP,function(){reset(grand,sp);});
function reset(targetG:Sprite,target:Sprite){
var mtrx:Matrix = new Matrix();
targetG.transform.matrix = mtrx;
targetG.y = defY;
target.transform.matrix = mtrx;
}
//ラジアンに変換
function retRad(param:Number):Number{
return param * (Math.PI/180);
}
package{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
public class Learning20 extends Sprite{
var spArray:Array = new Array();
var canvas:Sprite;
public function Learning20(){
canvas = new Sprite();
addChild(canvas);
for(var i:int;i<6;i+=1){
var sp = new Sprite();
sp.x = (i*60);
spArray.push(sp);
var spGraph = sp.graphics;
spGraph.beginFill(0xFFFFFF*Math.random(),15);
spGraph.drawRect(0,0,50,50);
canvas.addChild(sp);
}
canvas.addEventListener(MouseEvent.MOUSE_OVER,overFunc);
canvas.addEventListener(MouseEvent.MOUSE_OUT,outFunc);
canvas.addEventListener(MouseEvent.MOUSE_DOWN,downFunc);
canvas.addEventListener(MouseEvent.MOUSE_OUT,moveFunc);
//canvas.mouseChildren = false;
}
private function overFunc(e:MouseEvent){
e.target.scaleY = 1.5;
}
private function outFunc(e:MouseEvent){
e.target.scaleY = 1;
}
private function downFunc(e:MouseEvent){
e.target.alpha -= 0.1;
}
private function moveFunc(e:MouseEvent){
e.target.alpha = 1;
}
}
}