問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
1 名前:Flash大好き 日付:2010/04/07(水)13:58:16 ID:92ceqp0jbm0d
いまAS1.0かAS3.0で雪を降らすことができるスプリクトを探しています
いろいろなサイトさんを見てやってみたものの
どうしてもエラーが出ます・・・
どなたか
エラーが出ないスプリクトを教えてください
よく出るエラーは「パッケージをネストすることはできませんです
どうかよろしくお願いします
2 名前:kame 日付:2010/04/07(水)17:44:06 ID:GKBiaxnzD6eZ
AS1です。
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"が配置されているムービークリップを複製して下さい。

気が向いたら動かし方も載せるかも…?!
3 日付:2010/04/08(木)16:58:21 ID:92ceqp0jbm0d
ありがとうございました!
できたら
動かし方も教えていただきたいのですが・・・・
ぎりぎりまで待っています
4 名前:kame 日付:2010/04/08(木)18:01:38 ID:GKBiaxnzD6eZ
・動かし方の基礎
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;
}
これで奥行きが出ると思います。(でなかったらゴメンね)

ちらつかせるのは俺の技術の限界を超えています・・・
違う人に聞いてみて下さい。
5 名前:竹馬 日付:2010/04/09(金)11:52:14 ID:bALLVrlqHKFo
作ってみたのでソースを貼っておきます。

・・・と思ったのですが、
なんか、ソースをそのまま書き込んだら
「長すぎだ!こんちくしょうめ!」的な事をいわれてしまったので、
ソースの置いてあるページへのリンクを貼っておきます。
ttp://www.ie.u-ryukyu.ac.jp/~e095729/index/program/yukiFolder/yuki.html

動かなかったらすいません。
6 名前:kame 日付:2010/04/09(金)19:19:09 ID:GKBiaxnzD6eZ
竹馬さんの技術力に舌を巻くばかりです。orz・・・
7 名前:k 日付:2010/04/09(金)20:45:35 ID:9kJEWPZA4knz
こんばんは。
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の設定が誤っていたりしていませんか?
上のことができていれば、サンプルサイトのがエラーになることはないと思うのですが…。
よければ、開発するのに使っているソフトを教えてください。
8 日付:2010/04/09(金)22:18:24 ID:92ceqp0jbm0d
みなさんありがとうございました!
やってみます!
これににて解決です!
9 名前:状態変更 日付:2010/04/09(金)22:18:34 ID:92ceqp0jbm0d
この質問の状態を『解決』に変更しました。
10 日付:2010/04/09(金)22:47:08 ID:92ceqp0jbm0d
ちなみに
開発ソフトは
AdobeflashCS4
です
このスレッドについて
質問の状態 :
解決済み
投稿開始日 :
2010/04/07(水)13:58:16
投稿終了日 :
2010/04/09(金)22:47:08
投稿者 :
Flash大好き
レス総数 :
10
スレッド番号 :
5
MondoCollectionSystem ver.0x00020000 by Hakuhin