前記事as3.0:上下運動に動きを追加。
設定をしてないので戻ってこないけど・・・
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
/**
* 2008.08.08
* 線形上下運動
*/
public class Sample03_b extends Sprite
{
private var ball:Oyaji;
private var angle:Number = 0;
private var text:TextField;
private var speed:Number = 0.1;
private var centerY:Number = stage.stageHeight;
private var range:Number = 50;
private var xspeed:Number = 2;
private var yspeed:Number = 0.1;
public function Sample03_b()
{
init();
}
private function init():void {
ball = new Oyaji();
addChild(ball);
ball.x = 0;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
//text
text = new TextField;
stage.addChild(text)
text.x = 40;
text.y = 175;
text.width = 200;
text.height = 20;
text.selectable = false;
text.textColor = 0xffffff;
}
public function onEnterFrame(evemt:Event) {
//★追加
ball.x += xspeed;
//Stageの半分の高さ + サインを求めてrangeから-rangeまでの振幅を算出
ball.y = centerY / 2 + Math.sin(angle) * range;
angle += yspeed;
var bally_num:Number = ball.y;
text.text = String(bally_num);
}
}
}
AS3引き続き勉強中。
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
/**
* 2008.08
* 線形上下運動
*/
public class Sample03_a extends Sprite
{
private var ball:Oyaji;
private var angle:Number = 0;
private var text:TextField;
private var speed:Number = 0.1;
private var centerY:Number = stage.stageHeight;
private var range:Number = 50;
public function Sample03_a()
{
init();
}
private function init():void {
ball = new Oyaji();
addChild(ball);
//centerに
ball.x = stage.stageWidth / 2;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
//text
text = new TextField;
stage.addChild(text)
text.x = 40;
text.y = 175;
text.width = 200;
text.height = 20;
text.selectable = false;
text.textColor = 0xffffff;
}
public function onEnterFrame(evemt:Event) {
//Stageの半分の高さ + サインを求めてrangeから-rangeまでの振幅を算出
ball.y = centerY / 2 + Math.sin(angle) * range;
angle += speed;
var bally_num:Number = ball.y;
text.text = String(bally_num);
}
}
}
ball.y = centerY / 2 + Math.sin(angle) * range;
angleのサインを求めてそれにrange(50)をかける
幅はrange(50)から-range(-50)まで
それにStage分の高さ(200)を2で割った分を足す(100)
振幅は 150 から 50 まで
angle += speed;
angleにspeed分を足していき上下運動をさせる(値が高いとspeed up)
ちなみに
ball = new Oyaji();
記事as3.0:表示リスト/親子関係で作った親父グラフィックを分けて親父クラスを作成してみました。
package
{
import flash.display.Sprite;
/**
* 2008.08.07
*/
public class Oyaji extends Sprite
{
public function Oyaji() {
init();
}
public function init():void {
//Oyaji用
graphics.beginFill(0xffffff);
graphics.drawCircle(0, 0, 20);
graphics.endFill();
graphics.beginFill(0xaa0000);
graphics.drawCircle(0, 0, 10);
graphics.endFill();
graphics.beginFill(0x000000);
graphics.drawCircle(0, 0, 6);
graphics.endFill();
graphics.beginFill(0xffffff);
graphics.drawCircle(-5, -5, 3);
graphics.endFill();
}
}
}
好きなものを使って勉強すると楽し~。
だいぶ前に作ったFlashの蝶の動きのサンプル
仕事で使う予定だったけど日の目をみなかったのでせっかくだからblogに載せます
元データはイラレ。確か60コマぐらいあるはず。
こんな感じです

せっかくだから今度どこかで使おうと思う。
2008.10.19 Topで蝶のシルエットを使ってみました こちら >>
AS3最近ちょっと勉強中。
AS2と比べると大きく違うことはまず書き方だと思うけど、
型定義を宣言してStageにaddChildしないと表示されないことかな。
でも型定義・宣言してるからどこか記述ミスした時にエラーが出るから便利!
AS2だと何か対策しとかないとどこ記述ミスしたのか分からない・・・ってことあったもんなぁ
あと親の中に表示させた子要素をいちいち削除しないで
別の親要素に移動できるのがすごいー
いままでのattachしてremoveして…なんて繰り返さなくてもいいってことですよね。
試しにサンプル作ってみました
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
public class Sample01 extends Sprite
{
//型を宣言
private var parent1:Sprite;
private var parent2:Sprite;
private var ball:Sprite;
private var text:TextField;
public var ballFlg:Boolean = false;
private var message:String = "押してみるのじゃ!";
public function Sample01()
{
init()
}
private function init():void {
//親要素1
parent1 = new Sprite();
addChild(parent1);
parent1.graphics.lineStyle(1, 0);
parent1.graphics.drawRect( -50, -50, 100, 100);
parent1.x = 60;
parent1.y = 60;
//親要素2
parent2 = new Sprite();
addChild(parent2);
parent2.graphics.lineStyle(1, 0);
parent2.graphics.drawRect( -50, -50, 100, 100);
parent2.x = 200;
parent2.y = 60;
//子要素1
ball = new Sprite();
parent1.addChild(ball);
//Oyaji用
ball.graphics.beginFill(0xffffff);
ball.graphics.drawCircle(0, 0, 20);
ball.graphics.endFill();
ball.graphics.beginFill(0xaa0000);
ball.graphics.drawCircle(0, 0, 10);
ball.graphics.endFill();
ball.graphics.beginFill(0x000000);
ball.graphics.drawCircle(0, 0, 6);
ball.graphics.endFill();
ball.graphics.beginFill(0xffffff);
ball.graphics.drawCircle(-5, -5, 3);
ball.graphics.endFill();
ball.addEventListener(MouseEvent.CLICK, onBallClick);
//text
text = new TextField;
stage.addChild(text)
text.x = 90;
text.y = 120;
text.width = 150;
text.height = 20;
text.selectable = false;
text.textColor = 0xffffff;
text.text = message;
}
public function onBallClick(event:MouseEvent):void {
if (ballFlg==false){
parent2.addChild(ball);
text.text = "わしを元に戻せい!";
ballFlg = true;
}
else {
parent1.addChild(ball);
text.text = "押してみるのじゃ!";
ballFlg = false;
}
}
}
}
「parentX.addChild(ball);」部分を変更するだけで子要素が移動する。便利ー
最近会社の人に教えてもらってFlashのAS開発環境で「FlashDevelop」を使ってます。
参考にしたサイト↓
code:xさんのエントリ「FlashDevelop」、 「設定XML for Vista」
で、メニューが英語だと英語が苦手な私はなんだかわかりづらい・・・ということで
日本語化したいなーと
参考にしたサイト↓
logicalyze::blogさんのエントリ FlashDevelop v3 beta7を日本語化してみる
参考にさせていただいたファイル・方法で「メイリオ」で無事日本語化!
これで一安心!だったんですがメイリオフォント個人的にちょっと見ずらい・・・
私は以前Flash既存のアクションパネルを「ヒラギノ角ゴ Pro w3」にしていました。
Designやってて見易さが素敵なこのフォント・・・これにしたいなぁと
試してみたら無事ヒラギノに出来ました(もちろんヒラギノフォント入ってる前提で)
すでに日本語化しているなら上部メインメニューから ツール>アプリケーションファイル「FlashDevelop」を開きます。
FlashDevelopのフォルダから「Settings」フォルダに入ります。

Settingsフォルダ内の「ScintillaNET.xml」を以下に変更しました。
<globals> <value name="default-fore">0x8c8c8c</value> <value name="default-back">0xffffff</value> <value name="default-font">Hiragino Kaku Gothic Pro W3</value> <value name="default-font-size">12</value> <value name="default-selection-fore">0xffffff</value> <value name="default-selection-back">0x000000</value> <value name="default-caretline-back">0xececec</value> <value name="default-caret-fore">0x000000</value> </globals>
ついでに文字色も落としました。薄い方が目に優しい。
しばらくexsiteでほんとたまに私信Blogをやっていましたが、
私信だとどーにもBlogを書かないことに気づき。
あまりにももったいないので日々のWeb周りの忘備録Blogにしたほうが後々に役にたつだろうと。
現在Webデザイン中心に仕事してる私ですが、Flashを使ったお仕事もしてるので日々の自分なりのTipsを書いていこうと思います。



