• ベストアンサー

FLASHのActionScriptの変数について。

OS:ME 携帯:W32H 使用ソフト:Parafla 携帯用で5枚の画像からランダムで表示するスクリプトを作ろうとしているのですが、SWFバージョンを4にすると文法が間違っていますと言われ再生出来ません。 hensuu = int(Math.random() * 5)+ 1; これが間違っているらしいのですが… SWF4でも動くようにするにはどうすれば良いでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

int は良いのですが, Math クラスのメソッドが Flash Lite 1.1 まででは使えません。 単なる random関数 「random()」を使います。 ご質問にあるスクリプトを Flash Lite 1.1 以下仕様に書き換えると次のような ActionScript になります。 hensuu = random(5)+1; random(5) で, 0~4 までの5つの整数のうちいずれかの値を返すので random(5)+1 で, 1~5 までの5つの整数のうちいずれかの値を返します。 random() で得られる数は,元から整数なので,int で丸める必要はありません。 Parafla でも Flash のヘルプは役に立つと思います。 Flash ヘルプの該当ページは次の URL です(重いですが)。 Flash Lite のグローバル関数 > random() http://livedocs.macromedia.com/flash/8_jp/main/00005223.html 読みにくいですし探しにくいですが, 下の↓参考URLあたりから検索したりクリックで進むと, Flash Lite に関するActionScript などが見つかります。

参考URL:
http://livedocs.macromedia.com/flash/8_jp/main/wwhelp/wwhimpl/js/html/wwhelp.htm?href=Part12_FL_API_Reference.html
Raid-il44
質問者

お礼

すごく参考になりました…♪ 詳しくわかりやすい説明ありがとうございますv これで漸く作れそうです♪

関連するQ&A

  • Flashで背景をランダムに変えたいんですが‥‥

    外部のSWFファイルを読み込んで、それをランダムに表示させたいんですがどうも上手くいきません。 Flashがバージョン5のため、画像のみを貼りつけたSWFファイルを読み込ませて、それを背景に使おうとしています。 ホームページに載せて、見るたびに背景を変えようという狙いです。 それで、色々と調べてみてスクリプトもいじって外部ファイルを読み込んで表示はしてくれるようになったんですが、表示の一番上に来てしまってメニューのボタンなんかが隠れてしまうのです。 これが、書いてあるスクリプトです。 onClipEvent (load) { no = Math.floor(Math.random()*3)+1; loadMovieNum("haikei"+no+".swf", 0); } スクリプトにはどうも分からない点が多いので、細かく説明していただけるとありがたいです。 修正点や、「こういうやり方もある」っていうのがありましたら、ご指導の方をよろしくお願いします。

  • FLASHを使って、複数のswfとjpgをランダム表示させたい

    現在、てもとに10個のswfファイルと60個のjpgファイルがあります。 それらを、ひとつのswfファイルをベースにしてランダムに表示させたいと考えています。 ベースとなるswfを置くHTMLは、それらの画像ファイル群のひとつ上の階層にあります。 swfファイルをランダムに表示するアクションスクリプトは以下のようにできました。これを参考にjpgにも対応するようにすればいいと思うのです。 //1~3の整数の乱数を,変数 ransuu にセット ransuu = Math.floor(Math.random()*13)+1; //ムービー内に ransuu+".swf" をロード this.loadMovie(ransuu+".swf"); どうぞよろしくおねがいします。

    • ベストアンサー
    • Flash
  • FLASHのランダム表示とサイズ指定

    Action scriptがいまいちわからないのでjavascriptでFLASH画像をランダム表示していますがサイズの指定ができません。 全て同じサイズのFLASHですが表示サイズが半分以下になってしまいます。 ヘッダに下記のスクリプトを書き、 ↓ <SCRIPT TYPE="text/javascript"> n=parseInt(Math.random() * 3); var flashurl = [ "1.swf","2.swf","3.swf ]; document.write("<OBJECT CLSID=xxxx SRC='"+flashurl[n]+"' ...>"); document.write("</OBJECT>"); </SCRIPT> 表示させたい場所に下記のように書いています。 ↓ <script language="javascript"> var flashurl = ["1.swf", "2.swf", "3.swf",]; flashurl = flashurl[Math.floor(Math.random() * flashurl.length)]; document.write('<object data="' + flashurl + '" type="application/x-shockwave-flash">'); document.write('<param value="' + flashurl + '" name="movie" /></object>'); </script> CSSレイアウトでページを作っている事は関係ないでしょうか。スクリプト初心者なのでよろしくお願い致します。

  • flashってどうやって作るの?

    プログラムはよく書くのですが、flashはド初心者です。 ActionScriptでプログラムを書く書き方は大体わかるのですが、それをどうやってswfファイルにするのでしょうか。 http://www.geocities.jp/coa9999/ さんのParaFlaは使わせてもらい、色々画像のムービーはつかった事がありますが ActionScriptでflashを作りたいです。メモ帳などでスクリプトを作って拡張子代えてとかで再生できるようになりますか?・・・ならないですよね; ActionScriptでflashを作るのは何かシェアウェアが必要なのでしょうか。 どなたか教えてもらえますでしょうか。よろしくお願いしますm(_ _)m

    • ベストアンサー
    • Flash
  • FlashとHTMLの階層が違うために表示できない(と思われる)。

    複数のswfファイルをランダム表示するために、ひとつのswfファイルをベースにして、そこに以下のようなアクションスクリプトを記述することによって動作させることができました。 //1~3の整数の乱数を,変数 ransuu にセット ransuu = Math.floor(Math.random()*13)+1; //ムービー内に ransuu+".swf" をロード this.loadMovie(ransuu+".swf"); しかし、上記のアクションスクリプトは、ベースとなるswfファイルと、それを設置するHTMLと、ランダム表示させるswfファイル群が全て同じ階層にあるということを前提にして書かれているようです。従って、HTMLをひとつ上の階層に設置し、そこからベースとなるswfファイルを設置しても、表示されません。FlashとHTMLの階層が違う場合には、どのように上記のアクションスクリプトを変更すればよいのかを教えてください。

    • ベストアンサー
    • Flash
  • FLASH(swf)2点のリロード毎の切り替えに関して

    FLASH(swf)を2点リロード毎の切り替えさせようと思い、JavaScriptで下記のようにしたとろこ表示はできました。 <script type="text/JavaScript"> <!-- rndimg = new Array(); rndimg[0]="boy.swf"; rndimg[1]="girl.swf"; rndnm = Math.floor(rndimg.length*Math.random()); rndimg = rndimg[Math.floor(rndnm)]; document.write('<embed src="'+ rndimg +'">'); // --> </script> が、サイズが小さく表示されます。基本サイズはW800×H270です。これさえクリアしたら現状の製作中のセサイトは80%完成なので、どなたか教えてください。 他の方法は昨日いろいろ試しましたが、一定のブラザのみで表示とか、どれも上手くいかず上記の方法にやっとたどり着きました。

  • Flashで画面全体にインスタンスを降らす

    Flashで作成した画面内に作成したインスタンスを降らすという アニメーションを作成しました。 ■as3 --------------------------------------------------------------- stage.scaleMode = StageScaleMode.NO_SCALE; var w:int = stage.stageWidth; var h:int = stage.stageHeight; stage.addEventListener(Event.RESIZE, function(event){ w = stage.stageWidth; h = stage.stageHeight; }); var num:int = 10; var list:Array = []; for (var i:int = 0; i<num; i++) { var mc:Mc = new Mc(); mc.x = Math.random()*w; mc.y = -30; addChildAt(mc, 1); list.push(mc); list[i].vx = Math.random()-0.5; } addEventListener(Event.ENTER_FRAME,parallax); function parallax(e:Event):void { for (i=0; i<num; i++) { if(list[i].x != 0){ list[i].x += list[i].vx/(0.03*i+1); list[i].y += 5/(0.03*i+1); }else{ list[i].y += h; } if (list[i].y>h) { list[i].x = Math.random()*w; list[i].y = 0; } } } こちらはFlashをパブリッシュしてswfだけで見れば、 問題なく、y:-30からパラパラ降り注いだものになります。 下まで行けば上にもどって繰り返します。 ただ、下記のようにして、 html上に可変状態で挿入すると 中途半端な位置から降り注いでしまいます。 ■html/css -------------------------------------------------------------- <style type="text/css"> <!-- #apDiv1 { position:absolute; left:0; top:0; width:100%; height:100%; z-index:1000; background: #999900; } --> </style> <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> </head> <body> <div id="apDiv1"> <script type="text/javascript"> AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','100%','height','100%','src','motion','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','motion','wmode','transparent'); //end AC code </script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100%" height="100%"> <param name="movie" value="motion.swf" /> <param name="quality" value="high" /> <param name="wmode" value="transparent"> <embed wmode="transparent" src="motion.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="100%" height="100%"></embed> </object> </noscript></div> ちゃんと全画面にswfは広がっているようなのですが・・・ 何か考えられる原因はございますでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASHを使って、複数のswfとjpgをランダム表示させたい

    現在、10個程度のswfファイルと60個程度のjpgファイルがあります。それらをjavascriptを使わずに(基本的にはFLASHで)、アクセスするたびにHTML上でランダム表示させたいと考えています。 これまで、ひとつのswfファイルをベースにして、以下のアクションスクリプトを使って、10個のswfファイルをランダム表示させることには成功しています。 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //1~3の整数の乱数を,変数 ransuu にセット ransuu = Math.floor(Math.random()*13)+1; //ムービー内に ransuu+".swf" をロード this.loadMovie(ransuu+".swf"); :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: たぶんこのスクリプトを発展させれば、jpgもランダム表示できるようになると思います。 ランダム表示させたい複数のswfファイルとjpgファイルは同じ階層にあります。HTMLはそのひとつ上の階層にあります。ベースとなるswfファイルは、複数ランダム表示用のファイル群と同じ階層でも良いし、もしくはHTMLと同じ階層でも良いことにします。 どのような方法があるか、教えてください。 *ちなみに、ベースとなるswfファイルを複数ランダム表示用のファイル群と同じ階層において、そのひとつ上の階層にあるHTMLから読み込んだ場合、うまく表示されませんでした。このアクションスクリプトを引用した元のウェブサイトでは、HTMLも、ベースとなるswfファイルも、ランダム表示される複数のファイル群も、全て同じ階層にあるという前提になっていました。

    • ベストアンサー
    • Flash
  • ParaFlaのswfバージョン

    flash製作ツール「ParaFla」についてです。 「ファイル(F)」-「プロジェクトのプロパティ(P)...」で設定できる、 「SWFバージョン」の項目について質問します。 このバージョンを変更すると、具体的に何が変わるのでしょうか?? ”携帯はswf4しか再生できない”とも聞きましたが、 私の携帯ではswf7まで再生できました。 また、ActionScriptも使うので、その点についても併記して、 ご教示願いたいと思います。

    • ベストアンサー
    • Flash
  • Flash swfのランダム再生

    こんにちは。今回はswfのランダム再生に関して質問させていただきます. 使っているバージョンはFLASHCS3/AS2.0です. たくさんのランダム再生に関する質問を参考に進めていたのですが,どうしても自分の理想通りにならないので質問させていただきました. やりたいこと. →btn というボタンをクリックして,mcに3種のswfを3連続ランダム再生したい. 自分で試してつくってみたところ,btnをクリックすると確かにランダムに3種のswfを選択しているようなのですが,選択した1種のswfを永遠に再生するだけになってしまいます.もちろんbtnをクリックするたびにランダムに再生してほしいのですが,3種のswfを3連続再生してほしいのです(重複可). 「3連続再生したあと実行をやめる」というASもわかりません. どうかご回答願います.

専門家に質問してみよう