AS1.0かAS3.0で雪を降らすことができるスプリクトについて - Flashプログラミング 問答収集 No:5
Flash大好き
2010-04-09T22:47:08
http://mcs.hakuhin.jp/flash/atom5
10 日付:2010/04/09(金)22:47:08 ID:92ceqp0jbm0d
http://mcs.hakuhin.jp/flash/5#5_10
2010-04-09T22:47:08
開発ソフトは
AdobeflashCS4
です]]>
9 名前:状態変更 日付:2010/04/09(金)22:18:34 ID:92ceqp0jbm0d
http://mcs.hakuhin.jp/flash/5#5_9
2010-04-09T22:18:34
この質問の状態を『解決』に変更しました。]]>
8 日付:2010/04/09(金)22:18:24 ID:92ceqp0jbm0d
http://mcs.hakuhin.jp/flash/5#5_8
2010-04-09T22:18:24
やってみます!
これににて解決です!]]>
7 名前:k 日付:2010/04/09(金)20:45:35 ID:9kJEWPZA4knz
http://mcs.hakuhin.jp/flash/5#5_7
2010-04-09T20:45:35
AS1.0は、すでにすばらしいスクリプトが投稿されているので、
蛇足かもしれませんが、AS3.0で作ってみました。参考にしてください。
以下をMain.asで保存。そしてAlwaysCompileを設定する。fps20くらい、サイズ400*300、背景#000000。
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.getTimer;
public class Main extends Sprite {
public static const W:uint = 400;// 画面幅
public static const H:uint = 300;// 画面高さ
private const SEC_NUM:Number = 2;// 一秒間に出現する雪玉、小数も可
private var nowNum:uint = 0;
public function Main():void {
stage.addEventListener(Event.ENTER_FRAME, this.addSnow);
}
private function addSnow(e:Event):void {
while (this.nowNum < getTimer() / 1000 * this.SEC_NUM) { stage.addChild(new Snow()); this.nowNum++; }
}
}
}
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.BlurFilter;
class Snow extends Sprite {
private const clsns:Number = Math.random();
private var angle:Number = Math.random() * Math.PI * 2;
private const addAngle:Number = Math.random() * 0.05 + 0.05;
private var dfltX:Number = Math.random() * Main.W;
public function Snow():void {
this.x = dfltX + Math.cos(this.angle); this.y = -(this.clsns * 5 + 5);
this.graphics.beginFill(0xffffff, this.clsns / 2 + 0.5); this.graphics.drawCircle(0, 0, this.clsns * 5 + 5);
this.addEventListener(Event.ENTER_FRAME, this.fall);
this.filters = [new BlurFilter((1.5 - this.clsns) * 4, (1.5 - this.clsns) * 4)];
}
private function fall(e:Event):void {
this.x = dfltX + Math.cos(this.angle += this.addAngle) * 10;
if (this.y++ > Main.H + this.clsns * 5 + 5) {
this.removeEventListener(Event.ENTER_FRAME, arguments.callee);
this.parent.removeChild(this);
}
}
}
ところで、エラーのことですが、as3.0なら、
ファイル名とクラス名が不一致だったり、importが正しく行われてなかったり、
Always Compileの設定が誤っていたりしていませんか?
上のことができていれば、サンプルサイトのがエラーになることはないと思うのですが…。
よければ、開発するのに使っているソフトを教えてください。]]>
6 名前:kame 日付:2010/04/09(金)19:19:09 ID:GKBiaxnzD6eZ
http://mcs.hakuhin.jp/flash/5#5_6
2010-04-09T19:19:09
5 名前:竹馬 日付:2010/04/09(金)11:52:14 ID:bALLVrlqHKFo
http://mcs.hakuhin.jp/flash/5#5_5
2010-04-09T11:52:14
・・・と思ったのですが、
なんか、ソースをそのまま書き込んだら
「長すぎだ!こんちくしょうめ!」的な事をいわれてしまったので、
ソースの置いてあるページへのリンクを貼っておきます。
ttp://www.ie.u-ryukyu.ac.jp/~e095729/index/program/yukiFolder/yuki.html
動かなかったらすいません。]]>
4 名前:kame 日付:2010/04/08(木)18:01:38 ID:GKBiaxnzD6eZ
http://mcs.hakuhin.jp/flash/5#5_4
2010-04-08T18:01:38
onClipEvent(load){
_y=-30;
_x=Math.random() * FLASHの横サイズ;
k=2;
}
onClipEvent(enterFrame){
_y=_y+k;
}
てな感じです。これで下に向かって雪が落ちます。
・奥行き感を出す
onClipEvent(load){
oku=Math.random()+0.5;
_xscale=oku*100;
_yscale=oku*100;
k=oku*2;
_y=-30;
_x=Math.random() * FLASHの横サイズ;
}
onClipEvent(enterFrame){
_y=_y+k;
}
これで奥行きが出ると思います。(でなかったらゴメンね)
ちらつかせるのは俺の技術の限界を超えています・・・
違う人に聞いてみて下さい。]]>
3 日付:2010/04/08(木)16:58:21 ID:92ceqp0jbm0d
http://mcs.hakuhin.jp/flash/5#5_3
2010-04-08T16:58:21
できたら
動かし方も教えていただきたいのですが・・・・
ぎりぎりまで待っています]]>
2 名前:kame 日付:2010/04/07(水)17:44:06 ID:GKBiaxnzD6eZ
http://mcs.hakuhin.jp/flash/5#5_2
2010-04-07T17:44:06
1,まず雪の画像を用意する。(←これ重要。うんこみたいな雪になるか、幻想的な雪になるかはこれで決まる。)
2,画像をムービークリップにぶち込む
3,ムービークリップのインスタンス名を"yuki"にする。
4,「"yuki"が配置されている」ムービークリップのクリップアクションに↓をぶち込む。
(yuki自体ではないから要注意だ!m9(`・ω・´))
onClipEvent(load){
m=5;
_root.sin=0;
}
onClipEvent(enterFrame){
au=int(Math.random() * m) + 1;
if(au==5){
_root.sin++;
if(_root.sin>=200){
_root.sin=0;
}
ins="yuki"+_root.sin;
yuki.duplicateMovieClip(ins,_root.sin);
}
}
5,"yuki"のクリップアクションを書く。
(ここはどんな動かし方をしたいか、自分で考えて書くこと。)
※細かなこと※
雪の数を増やしたいときは、
mの数を減らすか、
"yuki"が配置されているムービークリップを複製して下さい。
気が向いたら動かし方も載せるかも…?!]]>
1 名前:Flash大好き 日付:2010/04/07(水)13:58:16 ID:92ceqp0jbm0d
http://mcs.hakuhin.jp/flash/5#5_1
2010-04-07T13:58:16
いろいろなサイトさんを見てやってみたものの
どうしてもエラーが出ます・・・
どなたか
エラーが出ないスプリクトを教えてください
よく出るエラーは「パッケージをネストすることはできませんです
どうかよろしくお願いします]]>