
ActionScript 3.0について学び直したいと思う初心者プログラマーはもとより、ActionScript 3.0はまったく初めてというFlashのデザイナーや開発者向けに書かれた入門書です。初級者にも扱いやすいタイムラインで実行できるコード例を示しながら、プログラミングに必要な基礎を解説していくので、確かめながら理解を深めていくことができます。
定価 ¥ 3,570
var flg:int = 0;
var grandMc:MovieClip = new MovieClip();
var mc:MovieClip = new MovieClip();//インスタンスを生成
var grp:Graphics = mc.graphics;//graphicsオブジェクトへのショートカットを作成
grp.lineStyle(0,0xFFAAAA,1);//線を追加(線の太さ,色)
grp.beginFill(0xFFAAAA,15);//塗りを追加(色,アルファ[0~1])
grp.drawRect(220,20,20,20);//矩形を描画(x,y,幅,高さ)
mc.name = "obj";
grandMc.addChild(mc);
var mc1:MovieClip = new MovieClip();
var grp1:Graphics = mc1.graphics;
grp1.lineStyle(0,0xFFAA00,1);
grp1.beginFill(0xFFAA00,15);
grp1.drawRect(260,20,20,20);
mc1.name = "obj1";
grandMc.addChild(mc1);
addChild(grandMc);
grandMc.addEventListener(MouseEvent.MOUSE_DOWN,strDrag);
grandMc.addEventListener(MouseEvent.MOUSE_UP,stpDrag);
grandMc.addEventListener(Event.ENTER_FRAME,function(){
if(mc.hitTestObject(mc1) == true){
if(flg == 1){
mc1.x = mc.x-20;
}else if(flg == 2){
mc.x = mc1.x+20;
}
if(mc1.x<mc.x){
mc1.x = mc.x-20;
}
}
});
//範囲制限 親要素からの相対 (xStart, yStart, xEnd, yEnd)
var bounds:Rectangle = new Rectangle(0,0,-240,0);
function strDrag(evt:Event):void{
evt.target.startDrag(false,bounds);
if(evt.target.name == "obj"){
flg = 1;
}else if(evt.target.name == "obj1"){
flg = 2;
}
}
function stpDrag(evt:Event):void{
evt.target.stopDrag();
}
var grandMc:MovieClip = new MovieClip();
grandMc.name = "gmc";
var xPos:Number = 0;
var yPos:Number = 0;
var inc:Number = 12;
for(var i:Number=1;i<1000;i++){
var mc:MovieClip = new MovieClip();
var grp:Graphics = mc.graphics;
var color = Math.random() * 0xFFFFFF;
grp.lineStyle(0,color,1);
grp.beginFill(color,15);
grp.drawRect(0,0,inc,inc);
mc.name = "obj"+i;
mc.height = inc;
mc.width = inc;
mc.y = yPos;
mc.x = xPos;
grandMc.addChild(mc);
xPos+=inc;
if(xPos%200==0){
yPos+=inc;
xPos=0;
}
}
addChild(grandMc);
grandMc.addEventListener(MouseEvent.MOUSE_OVER,over,false, 0, true);
function over(evt:Event):void{
var eGrp:Graphics = evt.target.graphics;
var eColor = Math.random() * 0xFFFFFF;
eGrp.lineStyle(0,eColor,1);
eGrp.beginFill(eColor,15);
eGrp.drawRect(0,0,inc,inc);
//evt.target.alpha = Math.random();
}
Sound - ActionScript 3.0 コンポーネントリファレンスガイド
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Graphics;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.net.URLRequest;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.MouseEvent;
import flash.geom.Matrix;
import flash.geom.Rectangle;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
public class Learning16 extends Sprite {
public function Learning16() {
//変数の宣言
var progObj:Sprite;
var mcCtrl:MovieClip;
var volumeCtrl:MovieClip;
var bounds:Rectangle
var sondFlg:Boolean=false;
var trans:SoundTransform;
var volumePos:Number = 160;
var soundPos:Number = 0;
//読込経過報告オブジェクト生成
progObj=new Sprite();
var grp:Graphics=progObj.graphics;
grp.lineStyle(0,0x666666,1);
grp.beginFill(0x666666,1);
grp.drawRect(0,0,1,1);
progObj.name="progObj";
addChild(progObj);
progObj.y=100;
//Soundインスタンスを生成
var sound:Sound=new Sound();
var soundChannel:SoundChannel = new SoundChannel();
//読込開始
sound.load(new URLRequest("example.mp3"));
//読込エラー報告
sound.addEventListener(IOErrorEvent.IO_ERROR,erroeReport,false,0,true);
//読込経過報告
sound.addEventListener(ProgressEvent.PROGRESS,progressReport,false,0,true);
//読込完了後、処理を開始
sound.addEventListener(Event.COMPLETE,completeEvent,false,0,true);
//*********************
//読込エラー報告関数
//*********************
function erroeReport(evt:IOErrorEvent):void {
trace("サウンド読み込みエラー");
}
//*********************
//読込経過報告関数
//*********************
function progressReport(evt:ProgressEvent):void {
progObj.width=300*(evt.bytesLoaded/evt.bytesTotal);
}
//*********************
//読込完了後のイベント関数
//*********************
function completeEvent():void {
var target=getChildByName("progObj");
//Loading Bar 削除
removeChild(target);
//再生停止ボタン生成
createImg(1); //振幅メーター生成
var meter0:Sprite=new Sprite();
var grp0:Graphics=meter0.graphics;
grp0.lineStyle(0,0xFFAA00,1);
grp0.beginFill(0xFFAA00,1);
grp0.drawRect(0,0,10,100);
meter0.name="meter0";
addChild(meter0);
meter0.y=100;
meter0.x=40;
var mask0:Sprite=new Sprite();
var mgrp0:Graphics=mask0.graphics;
mgrp0.lineStyle(0,0x000000,1);
mgrp0.beginFill(0x000000,1);
mgrp0.drawRect(0,0,10,100);
mask0.name="mask0";
addChild(mask0);
mask0.y=100;
mask0.x=40;
meter0.mask = mask0;
var meter1:Sprite=new Sprite();
var grp1:Graphics=meter1.graphics;
grp1.lineStyle(0,0xFFAAAA,1);
grp1.beginFill(0xFFAAAA,1);
grp1.drawRect(0,0,10,100);
meter0.name="meter1";
addChild(meter1);
meter1.y=100;
meter1.x=260;
var mask1:Sprite=new Sprite();
var mgrp1:Graphics=mask1.graphics;
mgrp1.lineStyle(0,0x000000,1);
mgrp1.beginFill(0x000000,1);
mgrp1.drawRect(0,0,10,100);
mask1.name="mask1";
addChild(mask1);
mask1.y=100;
mask1.x=260;
meter1.mask = mask1;
//ボリュームコントロール生成
volumeCtrl = new Volume();
volumeCtrl.name = "volumeCtrl";
addChild(volumeCtrl);
volumeCtrl.x = (stage.stageWidth/2) - (volumeCtrl.width/2);
volumeCtrl.y=volumePos;
volumeCtrl.addEventListener(MouseEvent.MOUSE_DOWN,strDrag);
volumeCtrl.addEventListener(MouseEvent.MOUSE_OUT,stpDrag);
//エンターフレーム監視
volumeCtrl.addEventListener(Event.ENTER_FRAME,function(){
//ボリューム設定
var vNum:Number = (getChildByName("volumeCtrl").x/250)*1.6;
trans = new SoundTransform();
trans.volume=vNum;
soundChannel.soundTransform=trans;
//メーター設定
meter0.mask.y = (100*soundChannel.leftPeak)+100;
meter1.mask.scaleY = soundChannel.rightPeak;
});
}
//*********************
//サウンドコントロール関数
//*********************
function mcCtrlEvents():void {
if (sondFlg==true) {
//停止した位置を取得
soundPos = soundChannel.position;
soundChannel.stop();
sondFlg=false;
createImg(1);
} else {
//サウンドを制御するためにSoundChannelに代入
soundChannel=sound.play(soundPos,1);//sound.play(再生開始時間:ミリ秒 , ループ回数 , SoundTransform)
createImg(0);
sondFlg=true;
//サウンドが終了したらループ
soundChannel.addEventListener(Event.SOUND_COMPLETE,function(){
soundPos = 0;
soundChannel=sound.play(soundPos,1);
});
}
}
//*********************
//イメージ作成・切替関数
//*********************
function createImg(type:int):void {
if (getChildByName("mcCtrl")) {
var remTarget=getChildByName("mcCtrl");
removeChild(remTarget);
}
if (type==0) {
mcCtrl = new Stop();
} else if (type == 1) {
mcCtrl = new Play();
}
mcCtrl.name="mcCtrl";
addChild(mcCtrl);
mcCtrl.x = (stage.stageWidth/2) - (mcCtrl.width/2);
mcCtrl.y = (stage.stageHeight/2) - (mcCtrl.height/2);
mcCtrl.addEventListener(MouseEvent.MOUSE_UP,mcCtrlEvents,false,0,true);
}
//*********************
//ドラッグ関数
//*********************
//範囲制限 親要素からの相対 (xStart, yStart, xEnd, yEnd)
bounds=new Rectangle(0,volumePos,150,0);
function strDrag(evt:Event):void {
evt.target.startDrag(false,bounds);
}
function stpDrag(evt:Event):void {
evt.target.stopDrag();
}
}
}
}
package {
import flash.display.Sprite;
import flash.events.Event;
import sketchbook.SketchBook;
import sketchbook.display.SpriteHelper;
import sketchbook.graphics.GraphicsHelper;
public class learning17 extends Sprite {
public function learning17() {
//多角形
var sp = new Sprite();
var helper:SpriteHelper=new SpriteHelper(sp);
helper.beginFill(0x666666);
helper.drawStar(80,80, 30, 50,12, 45);//(x,y,外径,内径,角数,回転角度)
helper.endFill();
addChild(sp);
//円弧
var sp1 = new Sprite();
var helper1:SpriteHelper=new SpriteHelper(sp);
helper1.beginFill(0x666666);
helper1.drawPie(180, 90, 50, 110, -90);//(x,y,半径,内径,塗りつぶす角度,回転角度)
helper1.endFill();
addChild(sp1);
//リング
var sp2 = new Sprite();
var helper2:GraphicsHelper=new GraphicsHelper(sp2.graphics);
helper2.beginFill(0x666666);
helper2.drawRing(320, 80, 10, 25, 270, -90);//(x,y,内縁,内径,塗りつぶす角度,回転角度)
helper2.endFill();
addChild(sp2);
var rad:Number = 0;
sp2.addEventListener(Event.ENTER_FRAME,function(){
sp2.graphics.clear();
var helper3:GraphicsHelper=new GraphicsHelper(sp2.graphics);
helper3.beginFill(0x666666);
helper3.drawRing(320, 80, 10, 25, rad, -90);//(x,y,内縁,内径,塗りつぶす角度,回転角度)
helper3.endFill();
if(rad<360){
rad+=10;
}else{
rad=0;
}
});
}
}
}