ActionScript 誰かが物凄い勢いで解答するスレ 23

このエントリーをはてなブックマークに追加
1Now_loading...774KB
AcitonScriptのことなら
初歩的な質問でもなんでもおk

見れない、保存したい、flashを作りたいはスレ違い
下記の関連スレ、超基本的な質問へ。

●質問する時は自分の環境を書く(AS2,AS3の別も)
●質問はものすごい勢いじゃなくて結構
●できるだけコードも示す
●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く

前スレ
ActionScript 誰かが物凄い勢いで解答するスレ 22
http://pc12.2ch.net/test/read.cgi/swf/1231639711/
関連スレ
Flashの超基本的な質問はここでしろ! part39
http://pc11.2ch.net/test/read.cgi/swf/1226284753/
Flash製作初心者の質問スレッド レイヤー39
http://pc11.2ch.net/test/read.cgi/swf/1223896635/
2Now_loading...774KB:2009/04/20(月) 20:04:30 ID:w9fEzuzB
MFCのCDC::Arcのような書式で、円弧を書きたいのですが・・・
ttp://msdn.microsoft.com/ja-jp/library/0ek4s1k5(VS.80).aspx
ロジックがまったく出来ません(´Д⊂ヽ
外接する四角形の、四角形の中心と他に2点を与えて出来るような円弧の描画を教えて下さい
またはサンプルがありそうなページとか教えて下さいm(__)m
AS2です

お願いします
3Now_loading...774KB:2009/04/20(月) 21:01:25 ID:TTug5t6O
下記コードで生成されたインスタンスから順に右に移動する方法を教えてください。
現状では生成される際に右に移動します。
function makeMC(event:TimerEvent):void {
var mc:MovieClip = new MovieClip();
mc.name = "mc"+i;
//イメージ描画
//円を描く
i = ++i;
var color:uint = Math.random() * 0xFFFFFF;//ランダムカラー
mc.graphics.beginFill(color);
mc.graphics.drawCircle(0, 0, 40-(i));
//表示
my_container.addChild(mc);
trace(mc.name);
//プロパティ設定
mc.x = 250+i*10;
mc.y = 200;
}
4Now_loading...774KB:2009/04/20(月) 21:29:19 ID:c9G5kP8x
>>2
三角関数使う。 一度ごとに円に点があると想定して、その点同士を直線で結ぶ。 なんてどうかな。

>>3
new MovieClip(); で生成したmcを配列に入れて配列で管理する。
5Now_loading...774KB:2009/04/21(火) 00:37:18 ID:Evgae8nr
多分、Frocessingのソースコードの中にそういうArc書くコマンドの例あるんじゃね。
ProcessingにもArcっていうコマンドがあるから
6Now_loading...774KB:2009/04/21(火) 00:47:45 ID:Evgae8nr
と思ったけど、なげやりすぎだから調べてみた。

Processingのarcの呼び出し
arc(x, y, width, height, start, stop)
http://processing.org/reference/arc_.html

FrocessingのF5Graphicsクラスにarcは定義されてる
__arcが実際に描画をおこなうプライベートメッソドみたい。
7Now_loading...774KB:2009/04/21(火) 00:52:25 ID:Evgae8nr
あと検索すればすぐわかるけど
Frocessingはここ
http://www.libspark.org/wiki/nutsu/Frocessing
8Now_loading...774KB:2009/04/21(火) 06:09:09 ID:lw82kD8A
質問があります。

環境はFlashCS3 ActionScript3.0で、
スクリプトはasファイルに書いています。

Flaファイルの方で「ball」というシンボルをつくり、リンケージ設定で
「ActionScriptに書き出し」にチェックを入れ、class名に「ball_mc」と
入力したのですが、

asファイルの方でaddChildしても表示されませんでした。

どのように書けば表示されるのでしょうか。

よろしくお願いいたします。
9Now_loading...774KB:2009/04/21(火) 10:57:42 ID:FY83CjoZ
最大公約数を求める関数なんだが、

function getGcd (a:Number, b:Number){
return(a == 0 ? b :arguments.callee(b % a ,a))};

「?」という演算子ありましたっけ?手元のリファレンス書には
載ってないんですが、、。
10Now_loading...774KB:2009/04/21(火) 11:06:37 ID:Im+LBs79
>>9
条件演算子とか三項演算子っていう
11Now_loading...774KB:2009/04/21(火) 14:03:52 ID:504CHspB
if (){}else{}

を短くした書き方。
12Now_loading...774KB:2009/04/21(火) 19:39:54 ID:7IvLSTOG
てすと
13Now_loading...774KB:2009/04/22(水) 03:59:26 ID:RrsXfg26
>10,11
遅くなってすまそ。理解しました。ありがとうございます。
14Now_loading...774KB:2009/04/22(水) 05:57:07 ID:pDUXZw8F
>>8
ball_mc でリンゲージ

- as3
var mc:ball_mc =new ball_mc();
addChild(mc);
15Now_loading...774KB:2009/04/22(水) 06:19:17 ID:RrsXfg26
文字列を分割して配列に変換するソースです。(本より)

input_txt.addEventListener(KeyboardEvent.KEY_UP, KeyUpHandler);
function KeyUpHandler(event:KeyboardEvent):void{
var str:String = input_txt.text;
var arr:Array = str.split("/");
result_txt.text = arr.pop();
}

でここで、arrを配列にしているのですが、
配列って最初に初期化(new)する必要があるんじゃなかったでしたっけ。

16Now_loading...774KB:2009/04/22(水) 07:16:48 ID:q7IBwkx9
>>15
var arr:Array でarrを配列型に宣言しているのでstr.split("/")を代入することができる。
初期化してもいいけど、絶対必要ではないよ。
上のスクリプトだと
配列型宣言→初期化(任意の値をセットnew()とした場合何も無い値がセットされる)→値代入
この場合だと、せっかく初期化しても直後に値代入で初期化した値が上書きされて初期化が無駄になる。
配列宣言→値代入
にすることで、無駄な処理を省いている。
17Now_loading...774KB:2009/04/22(水) 08:15:09 ID:RrsXfg26
ありがとう。
一般に、配列は初期化しなくても、Arrayデータ型を指定するだけで、
配列になるのですか?
それとも、上の場合は特殊な形でそうなったのでしょうか?
18Now_loading...774KB:2009/04/22(水) 08:22:37 ID:pDUXZw8F
>>17
splitは配列を返すからいいの
配列を返すってことは、split関数内でニューしてるって事

こういう風に考えてたんだが…
あ、合ってるよな?
19Now_loading...774KB:2009/04/22(水) 09:44:26 ID:InbuFFQ+
神様教えてください

[Embed(source='image.png')]

↑この[]は何を意味しているんですか?
20Now_loading...774KB:2009/04/22(水) 10:12:52 ID:ISK4rGJW
eclipse+mtasc+flashoutでActionScript2.0の勉強をしています
イベントのデリゲートなのですが、Webのサンプルを実行しても 『type error Unknown variable Delegate』とエラーが出ます
importが上手くいってないようで、import文にでたらめな文字列を突っ込んでもコンパイルは通っています
やはり読み込めていないのでしょうか?
コンパイルの追加パラメタは
「-version 8 -header 640:480:10」と指定しています
どなたかお助け下さいm(_ _)m
2120:2009/04/22(水) 10:14:42 ID:ISK4rGJW
20です。ソースです

import mx.utils.Delegate;
class Test extends MovieClip {
private var mc;
//フレームレート
private var fps:Number = 30;
static function main() {
var Test:Test=new Test(_root);
}
public function Test (mc:MovieClip) {
this.mc = mc;
//初期設定
init ();
}
private function init () {
var ball:MovieClip = mc.attachMovie ("ball", "ball", 0);
//マウスを追うメソッドをsetIntervalに登録.ここでエラー!!!
setInterval(Delegate.create (ball, step), 1000 / fps);
}
private function step () {
this._x += (_root._xmouse - this._x) * 0.1;
this._y += (_root._ymouse - this._y) * 0.1;
}
}
22Now_loading...774KB:2009/04/22(水) 10:34:22 ID:7qewXZfM
>>19
Flex等で埋め込みアセットクラスみたいな仕組みを使う時の書き方
それだと「image.png」を読み込んで「sourceクラス」として扱うようにしてる
Flashでいうと[ライブラリ]に画像を読み込むのと同じような物
23Now_loading...774KB:2009/04/22(水) 10:56:20 ID:v3pmFbPW
>>22
なるほど
スッキリしました
ありがとうございます
2420:2009/04/22(水) 12:26:54 ID:ISK4rGJW
20です
自己レスですが・・・

import mx.utils.Delegate;
これって、mtascの構成フォルダ(C:\Flash\MTASC\mtasc-1.14\std8)に
mx(ライブラリ)フォルダが必要なんですね
mxのソース(ライブラリ)の配布って行われてないんでしょうか?
FLEXとか買わないとダメなんでしょうか(TдT)
25Now_loading...774KB:2009/04/22(水) 13:39:36 ID:Ol+TiPXv
AS2/Flash8で実体参照について質問です。

ダイナミックテキストで「cafe」とかで使うアクセント付き「e」を、
実体参照の「é」で表示することができません。

name = "café";
System.useCodepage = true;
this.text1.html = true;
this.text1.htmlText = name;

こんな感じでhtmlで出力してもダメでした。
数値参照の「é」を使ってもダメでした。
('は表示できました)
どうにかして表示させたいのですが、なにか良い手はないでしょうか?
26Now_loading...774KB:2009/04/22(水) 14:04:02 ID:+MMoePou
数値文字参照でだめならだめじゃね。 フォントを変えてどうにかなればそれでいいのかな。
256までは対応してると思ってたけどだめなのかー。
27Now_loading...774KB:2009/04/22(水) 14:06:49 ID:+MMoePou
0-127までっぽい
28Now_loading...774KB:2009/04/22(水) 23:53:14 ID:RrsXfg26
>>18
遅くなりました。ありがとう。すっきりすたです。
29Now_loading...774KB:2009/04/23(木) 01:18:57 ID:yUCfVRXE
returnってメソッドじゃなかったんですね。
知らなかった、、、。
30Now_loading...774KB:2009/04/23(木) 07:13:20 ID:yUCfVRXE
すいません連投です。。

配列から要素を検索するスクリプトです。

var arr:Array = [123,456,"abc",789,"def",456,"ghi"];
var elem:uint = 456;
arr_txt.text = arr.toString();
elem_txt.text = elem.toString();
result1_txt.text = arr.indexOf(elem).toString();

::::::::::

で、以下の部分のシンタックスですが、
result1_txt.text = arr.indexOf(elem).toString();

indexOf(elem).toString()とメソッドが続く事に激しく違和感あるのです。
これは、indexOf()の戻り値、つまり「1」に対してtoString()のコマンドが
働いていると思っていいですか?

31Now_loading...774KB:2009/04/23(木) 23:11:03 ID:bGeSHhlP
>>30
そうです。
32Now_loading...774KB:2009/04/24(金) 02:07:30 ID:aDl4CPFT
>31さん
ありがとお。

戻り値のあるメソッドは、そのまま戻り値を表すオブジェクトに
なることもあるっ。と思ってよいですか?

あ、云いたい事うまくかけない。意味不明なら無視でいいです。
33Now_loading...774KB:2009/04/24(金) 02:18:12 ID:hm5DV5zL
変数に一旦入れるか、入れずに値に直接メソッドをかますか、の違いのことかな
違和感あるなら書き方を変えればいいんじゃない?
可読性が高まる代わりに、冗長になるから無駄な変数が増える

var num:int = arr.indexOf(elem);
result1_txt.text = num.toString();

てか、やりたいのはこうじゃないの?

var num:int = arr.indexOf(elem);
result1_txt.text = arr[num].toString();
34Now_loading...774KB:2009/04/24(金) 03:11:05 ID:aDl4CPFT
(☆▽-)キラーン
var num:int = arr.indexOf(elem);
result1_txt.text = arr[num].toString();

これ分かりやすいですね。ありがとお。

>可読性が高まる代わりに、冗長になるから無駄な変数が増える
なるほどです。
無駄な変数が増えないという利点があったんですね。

えっと。何で書き込んだのかというとスクリプト勉強はじめて
まだ間もないので、変な構文と出あうと気になって気になって。

今回はメソッドが2回続くのでなんだろう?なんだろう?
と思って質問したところでした。

よくわかりました。ありがとうございます。
35Now_loading...774KB:2009/04/24(金) 04:14:39 ID:fx9BcyFu
(ASそのものの質問では無いのですが)
ここ3ヶ月ほどの間に、このスレでXML利用の質問が多くなったような気が
しますが、FlashでXMLを使う利点が今一つ分かりません。
ググっても、「何でわざわざXMLやねん?」という感じです。

任意の内容のテキストファイルで属性を管理・参照してもいいような・・・
(例えば、List.txtでファイル名を参照する)

ぶっちゃけ、Flash(SWF)+XMLで皆さんは何をやってるんですか?
36Now_loading...774KB:2009/04/24(金) 04:39:13 ID:peI2y/GJ
xmlはきちんとタグで管理されてて、構造化されてるから管理、アクセスがしやすい
xmlで書けば、xml対応しているすべてのアプリケーションで簡単に扱うことができるから、連携がしやすい とか
AS3になってE4Xに準拠してxmlの扱いがすごい簡単になったってのもある

単なるテキストの場合、何番目に何があるっていうのを覚えてないといけないし、全部でひとつのStringだからそれをまた解析するのもめんどい
xmlならこのノード名のやつを全部とってこいとかプログラムで簡単に書けるからコードが短くなる
どんなに中身が多くなろうがプログラムで扱うときには気にしないでいい
また逆に吐き出すのも簡単 
37Now_loading...774KB:2009/04/24(金) 05:02:06 ID:AkBz/UCx
>>35
var xml:XML = ...
for each(var o:Object in xml.item ){
trace(o.title);
trace(o.caption);
}

携帯で書いてるから激しく間違えてるかもしれんが、ノードは超便利。
クラスやIDなどもの指定出来るので、CMSと連動などでも必須の機能。

ただ、今時少ないと思うが、大きなXMLを読む時に文字コードをShiftJiSなどにしていたら、読み込まない時があるから気をつけて
38Now_loading...774KB:2009/04/24(金) 07:12:26 ID:l/n1A/Pb
XMLは動的なコンテンツの生成のためじゃない。
運用環境にFlashオーサリングツール入ってるわけじゃないし、
サーバサイドの言語から生成するのもページ数が多いとAMFだと手間がかかるとかそこらへんじゃない
39Now_loading...774KB:2009/04/24(金) 10:13:29 ID:l/n1A/Pb
典型的なのは
表示する画像が変更されたり増減するスライドショーを
XMLで画像のURL与えて表示するとか
英語だけど、ここに作り方のチュートリアルある
http://flash.tutsplus.com/tutorials/xml/build-a-dynamic-flash-and-xml-slideshow-with-scripted-transitions/
40Now_loading...774KB:2009/04/24(金) 14:40:49 ID:nQHZVX/h
>>36-39
ありがとうございます。
そういえば、AS3.0のコンテナChild構造はXMLの階層構造にそっくりですね。
41Now_loading...774KB:2009/04/25(土) 00:35:03 ID:1PR/M81n
AS2 CS3 なのですが、
場面に応じてBGMを切り替えるFlashを作成しているのですが、
複数の外部MP3ファイルを、裏で先行読み込みをしておくことはできるのでしょうか?

sound.loadSound("xxx.mp3",false)
とイベントサウンドとして扱いたいので、
キャッシュさせておきたいということです。

どなたかアドバイスいただけませんでしょうか?
よろしくお願いします。
42Now_loading...774KB:2009/04/25(土) 01:01:57 ID:hZDhRB2o
>>41
起動時に読み込ませればいいだけです。 多くのファイルを同時に読み込ませると同一サーバ接続数の制限に
ぶつかってしまうので1つのファイルが読み終わったら次のファイルの読み込みを開始するようにするとベストです。
43Now_loading...774KB:2009/04/25(土) 01:04:46 ID:1PR/M81n
>>42
同一サーバ接続数というのも考慮しなくてはいけないのですね。
1つずつ読み込むという方法を試してみます。

ありがとうございました!
44Now_loading...774KB:2009/04/26(日) 00:55:44 ID:UoeE90kM
WinXPでFlashCS3(AS3.0)です。
XMLでノードの内容を配列に格納する方法で悩んでいます。下記は今回使っている
テスト用XML(外部XML)です。 
※タグ記号<>はレス欄に書き込むと消えてしまうので、[ ]で代用しています。

[vegie]
[item id="1"]tomato[/item]
[item id="2"]carrot[/item]
[item id="3"]eggplant[/item]
[item id="4"]potato[/item]
[/vegie]

var xmlObj:XML; として、
var node_item:XMLList=xmlObj["item"];
trace (node_item.children());
とすると、tomatocarroteggplantpotato のように区切れ無く出力され、
trace (node_item.child(0));でも同じでした。

理想は、配列myArray[0]がtomato,myArray[2]がcarrot,・・・ の状態です。
どうしたら良いでしょうか?
45Now_loading...774KB:2009/04/26(日) 01:12:08 ID:zeaUakA/
46Now_loading...774KB:2009/04/26(日) 01:23:13 ID:By5tuf7y
>>44
trace (node_item.child(0));

trace (node_item.child(0)[0]);
とするとtomatoと出力されるはずです。

node_item.child(0) の中身は配列になってますが、traceで出力すると区切り文字がないために
”繋がっているように見える” だけです。
47Now_loading...774KB:2009/04/26(日) 01:59:50 ID:UoeE90kM
>>45-46
あんがと。
試してみます。
48Now_loading...774KB:2009/04/26(日) 12:37:39 ID:NboLRnYY
FlashCS3 ActionScript3.0です
ここを見て練習しています
http://itpro.nikkeibp.co.jp/article/COLUMN/20060217/229666/?ST=swd-tech
> リスト2[拡大表示]のコードを記述したら,ムービープレビューで動作を見てみましょう。

ここまでいったんですが、「未定義のプロパティ _rootへのアクセスです。」と出て機体が動きません。
調べたらこのスクリプトはAS2.0用だとのことですが、AS3.0だとどう記述したらいいのかが出て来ないので教えてください。
49Now_loading...774KB:2009/04/26(日) 13:57:32 ID:T2r1P/Jp
ActionScript2.0です

サムネイル画像を複数ロードして
一個一個のサムネ画像はサイズがバラバラな場合
きれいに並べるにはどうしたらいいでしょうか。

現在、
for (i=0; i<サムネ枚数; i++) {
サムネ画像._x = i*100;
}
という風にして並べています。

これだと、サムネ画像のサイズに関係なく
100pxごとに横にずれて並べられるので
サムネ画像の間隔がバラバラになってしまいます。
キレイに並べるために
サムネ画像サイズをサムネ画像._xに加算していくのかなーと
思ったんですが、よくわかりません。
どなたか教えて下さい!
よろしくお願いします。
50Now_loading...774KB:2009/04/26(日) 14:37:07 ID:By5tuf7y
>>48
as3.0を勉強するかas2.0で書きましょう。

>>49
画像のロードが完了したときのイベントを利用して位置を調整しましょう。
51Now_loading...774KB:2009/04/26(日) 15:19:28 ID:zeaUakA/
>>48
AS3で作りたいなら、aAS3で書かれてるスクリプトを参考にしろよw
52Now_loading...774KB:2009/04/26(日) 17:46:06 ID:jZ15TNRI
他のスレに書いてしまったんですが、
こっちのほうがいいかもしれないと思ったので書きます
http://www.flashiroha.com/script/viewer/as44.html
このページのアルバムの画像サイズと枚数を変えて作成しているのですが、
サムネイルを押してもエラーでうまく写真が読み込まれません
写真が30枚なので<=9を<=30に換え
30、31行目もサムネイルのサイズ _x = px-96;_y = py-72;に換えたのですが
うまく動きません、どのあたりをいじればうまくいきますか?
インスタンス名などは合わせてあります。
あと、backはどのレイヤーにおけばいいんでしょうか?
そして、サムネイルに相当する写真を同じフォルダに置くというのは
元の画像ですか?それともムービークリップでしょうか?
教えてください
53Now_loading...774KB:2009/04/26(日) 20:39:24 ID:sO4L+xoh
Flash CS4(トライアル)、AS2.0、WinXPという環境です
サーバは@niftyです
@niftyの場合、CGI実行フォルダが別ドメインの『cgi-bin』と決め打ちされています

www.hogehoge/hoge/hoge.swfのActionScriptで、
www.hogehoge2/hoge2/hoge2.cgiを実行させたいのですが、
このように、cgiファイルとswfファイルが併置出来ない環境で、
方法はありますでしょうか?

System.useCodepage = true;
var my_lv:LoadVars = new LoadVars();
my_lv.send("www.hogehoge2/hoge2/hoge2.cgi", "_top", "POST");

などと書いても上手くいってないようなのですが・・・
54Now_loading...774KB:2009/04/26(日) 23:33:54 ID:y+sqDhM+
WinXPでFlashCS3(AS3.0)です。 XMLの属性の扱いで質問です

外部XMLを読み込み、その要素内容を読み取ろうとすると、ある属性が入っていることで不可になります。
以下は使用したXMLです(投稿CGIの都合上、タグ記号を<>→[ ]にしています)。
[?xml version="1.0" encoding="UTF-8" ?]
[vegie]
[metadata]
[lom xmlns="http://www"] // ←←
[general]
[title]
[langstring xml:lang="x-none"]value0[/langstring]
[/title]
[/general]
[/lom]
[/metadata]
[/vegie]

ASではLoaderで読み取ったXMLを var xmlObj:XML = new XML(loadEvt.target.data);として、
下記で出力を試みました。
trace ("xmlObj.metadata= "+xmlObj.metadata);
trace ("xmlObj..lom= "+xmlObj..lom);//孫の意味で「..」

このとき、矢印の xmlns="http://www" がある場合には trace ("xmlObj..lom= "+xmlObj..lom);
が何も出ず、単に [lom] ならこの出力が得られます。
※実際のデータからはxmlns="http://www"を外すことはできません。

どうしたら良いでしょうか?
55Now_loading...774KB:2009/04/27(月) 02:46:56 ID:GMkT7654
オブジェクトに入っている全てのプロパティを調べるメソッドはありますか?
5648:2009/04/27(月) 02:48:17 ID:fjUOpZN9
>>50
はい。AS3.0読んでみます。

>>51
検索したんですがAS3.0で書かれているのはリファレンスしか見つからなかったので。
頭が悪いので、もう少し実戦的でないと理解できないんです。
インクリメントなどの超基本はわかっているつもりなんですが、かといっていきなり専用関数とか説明されても
それをどう使ったらいいのか、というのが見えてこなくて。
57Now_loading...774KB:2009/04/27(月) 04:03:16 ID:g0ObPyzL
>>56
Flash 8 入門講座
http://itpro.nikkeibp.co.jp/article/COLUMN/20060525/238975/?ST=swd-tech

Flash CS3入門 基本からActionScriptまで
http://itpro.nikkeibp.co.jp/article/COLUMN/20071025/285488/?ST=swd-tech

自分はこの2つを全部読みました。 flashに関する説明は分かりやすいものの、スクリプトに関しては
説明が足りないところが多く、ある程度スクリプトの知識がある人を対象にした記事のように思いました。
ライターさんが同じ>>48の講座もそういう傾向があったりするのかも知れませんね。(読んでませんが)

まずは他のサイトでActionScriptの書き方を学んだほうがいいかも知れません。
58Now_loading...774KB:2009/04/27(月) 04:24:53 ID:imbqRtuJ
>56
場所を示す_x,_yのプロパティの表記法が3.0になって変わってます。

myShip._x
myShip._y

myShip.x
myShip.y

とソースを見たら、イベントまであるので、、、。
イベント処理の考え方は2.0と3.0は全然違いますので。
簡単な修正で済みそうでありません。

勉強するなら、他の人の云うように3.0用のソースで学習したほうがいいです。
59Now_loading...774KB:2009/04/27(月) 05:43:28 ID:dp6j2YFz
すいません。
アクセサメソッドの利点ですが、

「メソッドの形をとることで、クラス側のプロパティをいじることなく
FLASH側で値を参照することができる」

ということでOKですか?
60Now_loading...774KB:2009/04/27(月) 05:59:10 ID:BpD6LSBS
>>59
まあ正解。mc.x=50;でも、実質「関数xに50を代入してmcの位置を調整する」だから。
あと、固有のプロパティを作れる点も。
6154:2009/04/27(月) 06:30:14 ID:mla2TKyZ
Webや本を見直して、名前空間の扱い(xmlns)に問題があることが分かりましたが、
そこから先に進みません。

langstring要素の内容を取得するため、
var ns0:Namespace = new Namespace("http://www");
trace("xmlObj..lom= "+xmlObj..lom.ns0::langstring);
としましたが、何も現れません。

また、default xml namespace = new Namespace("http://www"); も見つけましたが
この使い方が分かりません。

どなたかアドバイス願います。
62Now_loading...774KB:2009/04/27(月) 09:05:58 ID:vKlC57fl
名前空間指定したら
名前空間で修飾したノードネーム使うんじゃないの多分。
63Now_loading...774KB:2009/04/27(月) 09:25:24 ID:vKlC57fl
アクセサメソッドは
クラス内部のデータとそのインタフェース(ユーザーがデータにアクセス
する方法)を分離するという
OOPの考え方から来ている。
例えば仕様が変更されて例えば色の情報をHSVに返すメソッドが
欲しいとなった時に、データはRGBだとしても、アクセサメソッドで
HSVに変更して返してやるメソッドを実装すればデータそのものは
変更しなくても存在しなくても済むというような事ができる。
64Now_loading...774KB:2009/04/27(月) 10:28:24 ID:TWj7UcD8
逆もあるよね。
内部的にはRGBでも保持していたのを、内部的に仕様変更しても、
アクセサメソッドを修正すれば、外部的に公開していた、function get rgb
はそのまま使わせる事が可能とか。
65Now_loading...774KB:2009/04/27(月) 12:38:51 ID:rJTg2kjy
>>61
決め打ちなら普通にlangstyleタグ引っ張ってくればいいんじゃね?

var ns:Namespace = new Namespace("http://www")
trace(xmlObj..ns::langstring)
66Now_loading...774KB:2009/04/27(月) 13:02:28 ID:vKlC57fl
あっ勘違いした
名前空間の修飾はもう使ってたのか
テキストノードにアクセスしたいのに、
テキストノードじゃなくて親のノードにアクセスしてるとか
そういう系のミスありそうだけど、違うかな。
ns::langstring.toString()
を呼んでみるとか
6748:2009/04/27(月) 14:56:19 ID:fjUOpZN9
>>57
ありがとうございます。そことリファレンス見て勉強してみます。

>>58
イベントのほうも適当に書き換えてみたら動きました。
ただ毎回これだけ苦労するのはきついので上のサイトでまず勉強してみます。
ありがとうございました。
6854:2009/04/27(月) 15:59:29 ID:SRcWpbkc
>>62
>>65-66
さんきゅうです。
やってみます。

独り言: 新しい取引先の担当者が日本語が不自由な件(助詞の使いかた間違いまくりw)
69Now_loading...774KB:2009/04/27(月) 16:05:50 ID:4e+UgnBw
>>68
特定しました。Sさん
70Now_loading...774KB:2009/04/28(火) 04:13:23 ID:3jH4l2Lv
二乗って「^2」つかえないんだっけ?
71Now_loading...774KB:2009/04/28(火) 06:56:37 ID:3jH4l2Lv
オラリーの本で勉強してます。

http://books.google.com/books?id=ZFWO8oPNrNEC&printsec=frontcover&dq=%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEActionScript&lr=&as_brr=3&hl=ja#PRA1-PA48,M1

ここの図7-6のコサイン、サインの値って誤ってません?
ラジアン表記でないのは置いといて、
例えば、cos(50°)は、0.64でなくちゃいけないでしょ。(0.96って書いてるけど。)
7271:2009/04/28(火) 08:01:59 ID:3jH4l2Lv
すいません。上のURL長すぎたのでいらないパラメータをはずしました。
http://books.google.com/books?id=ZFWO8oPNrNEC&printsec=frontcover&dq=#PRA1-PA48,M1
73Now_loading...774KB:2009/04/28(火) 09:32:17 ID:7Nf7i5Wa
その本の評判アメリカのAmazonでもそんなよくないよ。
http://www.amazon.com/Learning-ActionScript-3-0-Beginners-Guide/dp/059652787X/

プログラミング経験のある人が読むなら
Essential ActionScript 3で決まりかと。
http://www.amazon.com/Essential-ActionScript-3-0-Colin-Moock/dp/0596526946/

プログラミング経験のまったくない人が読むなら
一見遠回りに思えるけど。
新版 明解C言語 入門編
http://www.amazon.co.jp/dp/4797327928

憂鬱なプログラマのためのオブジェクト指向開発講座
http://www.amazon.co.jp/dp/4881356194/

あたりの定評のある本でプログラミング言語ってどんな事するの
オブジェクト指向って何みたいな事を先に把握しちゃったほうが
逆に早いかもしれない。
7471:2009/04/28(火) 10:08:27 ID:3jH4l2Lv
いろんな本の紹介ありがとうです。
でも、とりあえずcos sinが合っているのか知りたいので、、。
75Now_loading...774KB:2009/04/28(火) 10:56:52 ID:7Nf7i5Wa
高校1年レベルの知識でしょそれって。
電卓でも計算できるし、ここで聞かなくても分かると思うけど。
7671:2009/04/28(火) 11:08:49 ID:3jH4l2Lv
いや。そおなんだけど。
y軸が下方に+をとるみたいに、
Mathオブジェクトのメソッドだと、これで正しい理由があるのかも知れないかも
と思って。
77Now_loading...774KB:2009/04/29(水) 00:12:52 ID:qFWPu75n
>>73
この意見は的外れすぎる 評判良くないって星の数同じじゃないかw
「入門」に関して言えば間違いなく前者の本の方がわかりやすい
『コリンには悪いがこっちの方がわかりやすい』と評された本だぜ

なんでC言語なんかやらなきゃならんのだ わけわからなすぎるw
7871:2009/04/29(水) 00:32:18 ID:qPzjWqQu
オライリーに質問だしてみた。お騒がせしてすいませんでした。

この本については、悪くはないって思ってます。
ただ、翻訳書なので、表現とか分かりにくいところもあったりも
しましたけど。
79Now_loading...774KB:2009/04/29(水) 00:34:54 ID:mWIWGxoK
原本と見比べると、違いが多すぎる
80Now_loading...774KB:2009/04/29(水) 00:52:51 ID:WooKcaB6
Math.cos(50) = 0.964966028 は正しい。
だが、50°とは何の関係も無いのです。

とか言うことならやだなw。
81Now_loading...774KB:2009/04/29(水) 00:53:47 ID:mRjxTM4M
C言語は様々な言語に影響与えていて
どの言語を使うにしても役に立つってのと、
Cの仕様は凄く小さくてK&Rって本一冊でほぼ網羅できる
ぐらいなので、プログラミングの勘所が把握しやすいかなと思って。
自分がCから初めて他の言語も色々触ってActionScriptも触るように
なったからそう思うだけかも。
8271:2009/04/29(水) 01:14:58 ID:qPzjWqQu
そっか。ラジアンだと0.964966028か。
だったら、なおさらあの図は何?ってことなのだね。

なんとなく本の図の誤りっていうことが分かってきた。
ありがとう。
83Now_loading...774KB:2009/04/29(水) 01:19:08 ID:mRjxTM4M
そういう事か、ごめん。ちゃんと教えてあげなくて。
ていうか最近AS3あんまり触ってなかったから、俺もど忘れしてた。
Math.cos(angle)の引数はラジアンに変換して与えないとダメだよ。
8471:2009/04/29(水) 01:34:45 ID:qPzjWqQu
あ、いえありがとうございます。


50ラジアンって何度だよw。って思わずわらってしまいました。
オライリー信用してたんだけどなあ。
オライリーから返事あったら晒します。
85Now_loading...774KB:2009/04/29(水) 02:44:35 ID:InOD15+q
FlashCS3(AS3.0)+WinXP-Proです。

XMLの名前空間で質問です。ボタンクリックで外部XMLを読み込み、これを解析する
最初の段階でトラブってます。

loader.addEventListener (Event.COMPLETE, load_compleated);
loader.load (new URLRequest("ims.xml")); //読み込むXMLはims.xml
function load_compleated (loadEvt:Event):void {
xmlObj = new XML(loadEvt.target.data);
trace ("loaded"); //読み込み自体はOK
}

var ns0:Namespace = new Namespace(名前空間のURI);
var node_organization:XMLList=xmlObj..ns0::organization; // これがあるとエラー

読み込んだXMLのorganization要素を取り出したいのですが、上の記述だと名前空間を
適用する行で下記のエラーが出ます。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

今回の記述はボタンにリンケージされたASファイル内に書いています。
問題点はどこでしょうか?
86Now_loading...774KB:2009/04/29(水) 12:10:52 ID:ddK540EI
>>85
最後の2行がロード完了前に実行されてるからじゃね?
この2行をfunction load_completedの中に入れてみ。
87Now_loading...774KB:2009/04/29(水) 16:44:55 ID:JdozaoF7
エラーの行の「..」は書き込みミス?
88Now_loading...774KB:2009/04/29(水) 17:20:46 ID:O2msS1D2
さんくす。 出来ました!

お礼にどーぞ
http://uproda11.2ch-library.com/174218KEj/11174218.jpg
http://uproda11.2ch-library.com/174217IAT/11174217.jpg


>>87
マジレスすると、孫要素の参照。
89Now_loading...774KB:2009/04/29(水) 17:52:10 ID:JdozaoF7
>>88
へー、そんな記法あるのか
紛らわしくて嫌と思うのは俺が2.0止まりだからかな……
90Now_loading...774KB:2009/04/30(木) 00:24:19 ID:J4cApq/7

MovieClipクラスは、DisplayObjectのクラスを継承しているから
MovieClipのオブジェクトに、DisplayObjectのプロパティを指定しても
問題ないですよね。
たとえば、transformとか。
91Now_loading...774KB:2009/04/30(木) 13:14:45 ID:b+Td89CF
スライドショーみたいなもんを作ってるんですが

MC1, MC2 ,MC3にそれぞれ画像データを読み込んでいて
それぞれのMC番号に付随したDepthに格納しています。

こいつらをスライドさせながら画像を表示させようと考えた時に
displayMCという物を作って、これのDepthを4に設定しています。
それで、時間がくると displayMC にMC1 2 3 を順番に代入しつつ
スライドをさせたいと思っているのですが上手くいきません。
displayMC に他のMCのコピー代入するにはどうすればいいのでしょうか。

よろしくお願いします・・・。

9291:2009/04/30(木) 13:16:17 ID:b+Td89CF
環境を書いていませんでした!申し訳ありません。
AS2のXP環境です^^;
93Now_loading...774KB:2009/04/30(木) 13:32:02 ID:UzNULAto
>>91
うまくいかないといわれても、具体的な構造やASがわからんので推測だけ。
外部画像を読み込んだMCを、その外部画像ごと複製しようとしてるのだとしたら
それは出来ない。
BitmapDataを使って画像の複製を作ることはできる。
あるいは、swapDepthでそれぞれのMCの深度を変更することはできる。
9491:2009/04/30(木) 13:34:08 ID:b+Td89CF
>>93さん
なるほどそれだ!!
swapDepthも考えたのですが、MC1,2,3はMC配列で管理してるので
配列の番号とdepthはそろえたいナーと思っていたので表示用のMCを作るという考えに至りました。
9591:2009/04/30(木) 13:52:22 ID:b+Td89CF
>>93さん
調べてみるとBitmapのロードは少々手間がかかるし
メモリの関係上どうかと思ったので、やはり深度swapで解決しようとと思います・・・。
どうもありがとうございました。
96Now_loading...774KB:2009/04/30(木) 15:17:31 ID:167Io6vF
AS見せないやつってなんなの?
97Now_loading...774KB:2009/04/30(木) 16:16:49 ID:ML+pV7/x
なんで?
98Now_loading...774KB:2009/04/30(木) 16:30:30 ID:79fyvvbA
おっぱい見せないバレー部の話ってなんなの?
99Now_loading...774KB:2009/04/30(木) 16:35:30 ID:ML+pV7/x
プログラムメインで使う人にとっては
ベクター画像の配置とフォントの設定ぐらいにしか使わない
Flashの7万って価格はぼったくりだよな。
俺は絶対個人では買わないけど
100Now_loading...774KB:2009/04/30(木) 16:42:18 ID:ML+pV7/x
WindowsだとHPが無料で配布してる
SWFファイルのメンテナンスチェックツールみたいなので
AS3のファイルも逆コンパイルして中身見られるらしいけど。
自分MacだからAS2の逆コンパイラしか使ったことね。
101Now_loading...774KB:2009/05/01(金) 01:25:45 ID:Msznp3Ql
>>100
なにそれ?kwsk
102Now_loading...774KB:2009/05/01(金) 09:43:09 ID:f2hMe5Uy
SWFScanは、Adobe Flashのプラットフォームで作成されたアプリケーションを逆コンパイルしてActionScriptコードを抜き出し、
情報漏えいやクロスサイトスクリプティング攻撃などにつながる脆弱性が含まれていないかどうか分析する。
分析結果としてコード内のセキュアではない部分がハイライト表示され、セキュリティ問題の解決法が提示される。

http://www.itmedia.co.jp/news/articles/0903/24/news030.html
103Now_loading...774KB:2009/05/02(土) 12:50:38 ID:XV4Un97X
>>99
元々プログラムメインで使う人をターゲットにしてるわけじゃないし
ASだけゴリゴリやりたいならFlexSDKで良いわけだし

でもそうじゃない人にとっても高いと思うけどな
104Now_loading...774KB:2009/05/02(土) 13:01:12 ID:tJXRCm2W
プロ用ソフトは
「うちのソフトで儲けるんだから、分け前ちょうだいね」
って価格設定ってことだ
105Now_loading...774KB:2009/05/02(土) 19:09:03 ID:s4wwkavt
DisplayObjectをrotationプロパティ代入で回転させてるんですが
その回転の中心点ってどうやって変えられるんでしょうか?
AS3.0だけでやってます。
106Now_loading...774KB:2009/05/02(土) 21:26:56 ID:6LkKMfFR
泥臭いやり方だとラップして中身だけ移動?
自分もスマートな方法知りたい
107Now_loading...774KB:2009/05/02(土) 21:34:07 ID:eS/hOjj8
>>105
DisplayObject.transform.matrixを使うといいよ。
ttp://blog.cellfusion.jp/archives/633/
108Now_loading...774KB:2009/05/02(土) 22:04:22 ID:9Bx+IPjL
>>107
ありがとうございます。助かりました。
109Now_loading...774KB:2009/05/02(土) 22:18:01 ID:vnxKMA8q
Loader で読み込まれた子SWFのroot.parent.parent で
親SWFにアクセスできるらしいんですが、
http://hakuhin.hp.infoseek.co.jp/main/as3/loader.html#LOADER_01

//テキストフィールド tex がある親SWF
import flash.display.Loader;
import flash.net.URLRequest

function test1(){
this.tex.text="aaa";
}

var load_obj : Loader = new Loader();

var url:URLRequest = new URLRequest("loaderAS2.swf");
load_obj.load(url);

this.addChild(load_obj);

//子SWF
root.parent.parent.test1();


と書いてもテキストフィールドに変化がありません。
描き方のどこが問題なのか教えていただきたいのと、
どこかに子SWFから親SWFにアクセスしているサンプルがあれば
参考にしたいのですが、どこかにないでしょうか。
よろしくお願いします。
110Now_loading...774KB:2009/05/02(土) 23:23:25 ID:d+pwAKHD
actionscript3で、top・about・galleryの3ページのフラッシュサイト風な物を作ってみたのですが
例えば、aboutのボタンを押してaboutページが表示され、次にgalleryのボタンを押してaboutページが消えgalleryページが表示され
またaboutボタンを押してgalleryページが消えて・・・と、aboutとgalleryページを交互に表示・消去させて、使用メモリーを調べてみると
交互に表示してる間に少し減るのですが、移動先のページが表示されると減る量以上にグンと数値が上がってしまい
交互表示を続けていくとメモリーはどんどん増えていき、動きがカクカクしてきてしまいます

これはページを消す瞬間に行っている、ページ表示時に作ったSprite等を消す処理がちゃんと指定できて無いのが原因なのでしょうか?
それとも、こうしてずっと交互にページ移動していくとメモリーが増え続けるのは仕方ないのでしょうか?
111Now_loading...774KB:2009/05/03(日) 00:01:42 ID:uHFr8dO2
>110
イベントリスナーが残っているのかな?
112Now_loading...774KB:2009/05/03(日) 00:12:52 ID:XS6p5ja8
>>109
表示リストに追加される前に子swfのコード(どこに書いてるか知らんが)が実行されてるんじゃね?
これなんかどうよ? FLASH-JP.COM: 外部読込みされるMC内で、読込元の変数を参照したい
ttp://www.flash-jp.com/modules/newbb/viewtopic.php?forum=20&topic_id=7932
113Now_loading...774KB:2009/05/03(日) 00:46:05 ID:re7S+bo9
>>110
AS2で書けば悩まされないよ
114Now_loading...774KB:2009/05/03(日) 00:57:51 ID:XS6p5ja8
>>109
loadを呼ぶ前にaddChildしてないと、子が処理されるときに親にまだアクセスできないんじゃないかな?
115110:2009/05/03(日) 09:53:45 ID:4+GDGpD6
>>111-113
ありがとうございます、Spriteよりもイベントリスナーが外れたかに注意した方がいいんですね
結局色々試してみていますが、未だに解決できていませんorz
企業のフラッシュサイトとか、しっかりと作られた物ならこうしたページ移動を交互にやってもメモリーが増え続けたりはしないものなのでしょうか?
116111:2009/05/03(日) 20:58:00 ID:+TKuHO+z
例えば、イベントリスナーを設置するとき

通常は下のようにかくけど
eventTrget.addEventListener(EventType.EventName, eventResponse)


次のように引数を追加すればいいと聞いたことがある。
eventTrget.addEventListener(EventType.EventName, eventResponse, false, 0 ,true)

"false, 0 ,true"を追加するだけ。
解決するか分からないけど試してみてください。
詳しくは「ガベージコレクション」をぐぐってくだされ。
117111:2009/05/03(日) 21:16:33 ID:+TKuHO+z
上の対処的な解決策とは別に、

根本的な解決として、不要になったリスナーは
removeEventListener()メソッドで削除しないとメモリに残るよ。

でいいのかな?詳しい人、説明求む。
118110:2009/05/04(月) 10:42:21 ID:Cv2PabyB
>>116-117
ありがとうございます、ガベージコレクションについてももっと調べて勉強してみます
それ程の数のイベントリスナーを設定していないのでremoveChildも出来ているとは思うのですが・・・

ただ、自分の中でハッキリさせたいのが、フラッシュサイトを作り>>110のようなページ交互表示を続けた場合
多少なりともメモリ使用量が増えていき、次第に動作がカクカクになってしまうのは”異常”なのでしょうか
(自分の作ったサイトのような、2,3回ページを交互表示しただけでカクカクになるのは既に異常だと思いますが・・・)
しっかりと作られた”正常”なサイトなら、ページ交互表示を幾ら続けてもメモリ使用量の増減バランスがとれて、動きがカクカクになる事など有り得ないものなのでしょうか?
企業のサイトでページ交互表示を繰り返してみても動きがカクカクにならないような気がするもので、これが標準というか正常な動作なのかなと
119Now_loading...774KB:2009/05/04(月) 11:10:08 ID:eelbSKOs
removeChild() とあわせて、
removeEventListener() も設定するんよ。

>次第に動作がカクカクになってしまうのは”異常”なのでしょうか
swfをみないと分からないなあ。でも変ね。

オブジェクトや、イベントリスナーを、for や whileを
使って繰り返し生成しているのならありえるかも。
120Now_loading...774KB:2009/05/04(月) 11:48:25 ID:eelbSKOs
原因は三つのうちのどれか
1.イベントリスナーが残っている。
2.オブジェクトが実は消えてない。
3.ページ生成時に、function関数で別のオブジェクトを作っている。ギャラリー画像とか。

trace(my_sprite.numChilderen)
(my_spriteは親のオブジェクトコンテナ)
で子の表示オブジェクトを数えられるのでチェックするといいよ。
1218:2009/05/04(月) 13:08:28 ID:hVI+EHup
>>14

お返事が遅くなりまして大変
申し訳ありませんでした。
うまく表示できました!!
どうもありがとうございます。
122Now_loading...774KB:2009/05/04(月) 13:19:17 ID:lfTMP4SL
ニコニコムービーメーカーでswfをアップロードしようとしたら
「ビットレートを超えています。アップロードを中止します」って出るんですが
ビットレートを下げて(?)うpできるようにするにはどうしたらいいんですか。
123Now_loading...774KB:2009/05/04(月) 14:15:15 ID:P4Fkxeb4
動画のフレーム数に対してデータが重すぎるとかじゃなかったっけ?
動画の最後に空のフレーム追加してフレーム数伸ばしてみては?
124Now_loading...774KB:2009/05/04(月) 15:57:14 ID:lfTMP4SL
>>123
フレームってよくわかんないけどやってみる。
またくる。ありがとう。
125Now_loading...774KB:2009/05/04(月) 17:07:20 ID:44fCAz9f
>>112
>>114
教えていただいたURLのスクリプトを使ってみたところ、
ちゃんとアクセスできました。

ありがとうございます。
126Now_loading...774KB:2009/05/04(月) 22:13:48 ID:y97fZdvo
>>124
てっきりうpしようとしてるのは自作のswfだと思ってたんだがひょっとして
他人のswfファイル丸上げしようとしてるとか?
だとしたらあなたがFlshアニメが制作できるソフト持ってないと私の知識では無理。
127Now_loading...774KB:2009/05/05(火) 00:34:49 ID:6WOU4nsx
もともとwebデザイナーなんだが、
アクションスクリプトは難しいなあ。
人が作ったサンプルを解析して、修正することはできるけど。
0から自由につくりあげることは、なかなかできない。

もっと勉強が必要なんだろうけど、先が見えないよ。
そもそもデザイナーはデザインだけをやって、スクリプトは
プログラマに任せたほうがいいのか。

そのほうがいいように思えてきた。
128Now_loading...774KB:2009/05/05(火) 01:03:30 ID:VMlaxAqE
AS3.0 で ShaderJob を start(true); でループでまわして負荷テストしようと思ったらできませんですた。
ためしに毎ループで new ShaderJob(); してみたところ、できるようになりました。
それで思ったのですが、ShaderJob は再利用できないものなんでしょうか??
129Now_loading...774KB:2009/05/05(火) 01:34:41 ID:1pAcgGQR
デザイナーがHPに動きをつけたいなら
まずJavaScriptとJQueryをやってみるのが良いんじゃないかな。
今までに覚えたXHTMLやCSSの知識はそのまま使えるし、
JavaScriptが動かない環境やSEOの事で悩まなくても済むし。
これは最近みつけたJavaScriptのスクロール使った面白いサイト
http://www.sursly.com/
130Now_loading...774KB:2009/05/05(火) 02:53:54 ID:CSkGmaoS
>>127
難しい時期だよな。
ただそういう人は腐るほど居る

バリバリのデザイナーで、お客さんの目を奪う能力を手に入れるか
どんな仕事がきても、必ず形にできる人になるか

一皮剥けたいなら、どちらかを選ぶべきだな

因みに俺は…
まだ悩んでる
131Now_loading...774KB:2009/05/05(火) 15:48:08 ID:1pAcgGQR
人が作ったサンプルをデザインだけ入れ替えて使うって意味では
Flashテンプレート販売サイトからテンプレート買っちゃうってのも
ひとつの手かもよ。どうせCMSとかECサイトのデザインだけやってくれって
仕事の場合もPHPのプログラムを自分で一から書くわけじゃないし、
プログラマーでもフレームワークなんか使う事が多々なんだから。

http://flashden.net/
http://www.warmforestflash.com/
132Now_loading...774KB:2009/05/05(火) 17:14:16 ID:6WOU4nsx
そうなの?サンプルから作るのは邪道かと思ってた。
(いや。いつも雑誌とかサンプルのソースを使ってるんだけど。)
133Now_loading...774KB:2009/05/05(火) 20:10:06 ID:URl9BZj+
昔はそうだったけど今はサンプル使ってる人も多いみたいよ。

ただサンプル使うにしても流れを理解してて
エラー対応とかは完璧に出来るってことが条件
134Now_loading...774KB:2009/05/05(火) 21:46:48 ID:P8U8uZEb
サンプルというか、ライブラリを使って作る癖を付けた方が良いよ
なまじ勉強して全部1から作ろうとする人はおっそいし不正確になりがち
135Now_loading...774KB:2009/05/05(火) 23:28:03 ID:r+LB+Nbw
>>127
同じASでもAS2.0の方が敷居は低い。というか、3.0に比べて文法が
厳密じゃないから多少ワガママな表記でも動作する。

特に、『ボタンを押してX方向にMC1〜MC10を移動』なんて単純な動作や、
その場限りの作品,あるいは分業を必要としない場合にはAS2.0が有効だと思う。
136Now_loading...774KB:2009/05/06(水) 04:55:27 ID:tNDrvDac
Google Maps API for Flashで、地図の読み込み完了を知る方法(イベント?)ってありますか?
サンプルに載っているやり方のままだと、マップロード中はグレーの画像で表示されてしまいますが、
全部読み込んでから表示したいのです。isLoaded()メソッドとか試してみましたが違いました;
137Now_loading...774KB:2009/05/06(水) 13:20:56 ID:L6Rl12Zu
matrixクラスについてなんだけど。
単に、表示オブジェクトに、移動やサイズ、回転などのプロパティを追加させただけに
過ぎないと思うんだが。
なんで、これが3×3の行列と関係あるんだ?

と数学に疎い僕が云ってみる。
138Now_loading...774KB:2009/05/06(水) 13:31:50 ID:tNDrvDac
>>137
個々に指定する分にはそれぞれのプロパティを指定すればいいけど、
例えば斜体にするような場合は、既存のプロパティだけでは実現できないから
Matrixを使う、ってどこかで見た気がします
139Now_loading...774KB:2009/05/06(水) 13:41:52 ID:V0GS7AbZ
>>137
いくつかのベクトルを合成した結果を得たい時には、行列にしておいてそれを計算すると得られるのよ
Matrixの情報は、算数とか数学で習ったベクトル矢印みたいなもんだと考えておけばおk
それを何パターン化用意しておいて、あとは組み合わせるだけ、って使い方ができるわけね
こういう使い方と、行列の演算の相性が良いのよ
140Now_loading...774KB:2009/05/06(水) 15:38:34 ID:sdOY2cwZ
ゼロから学ぶ線形代数
って本が分かりやすかった気がする。
でも分かった気になっただけで、ほとんど忘れてしまった。
141Now_loading...774KB:2009/05/06(水) 15:41:28 ID:FuwZBG80
>>137
移動やら拡縮やら回転を
より汎用的に表現すると行列を使った方が簡潔に表せるのよ。

そうやって専門的になりすぎて一般人のAS離れがおこって、
わかる人だけが使える(=それでメシを食ってける人だけが使える)ものに
なっちゃってるわけだ。
でもま、高校数学をちゃんとやっとけばいいだけの話。
142Now_loading...774KB:2009/05/06(水) 16:17:33 ID:cAxuKuve
>>141
でも、その高校の数学自体がなあ・・・

今の高校生は理系でも統計学を習わないらしい。
標準偏差を知らない理系って何だよw
143Now_loading...774KB:2009/05/06(水) 17:51:52 ID:sdOY2cwZ
MacromediaがAdobeに買われてFlexが出たあたりから、
簡単な事はJavaScriptでやってくれ、AdobeはRIAを押して行くんだって感じだよね。
今度、PhotoShopからFlexにコンバートするための専用ソフトも出すみたいだし、
デザイナーはFlexは必要ない機能がてんこ盛りで重たいから敬遠してるのに
どうなる事やら。
144Now_loading...774KB:2009/05/07(木) 01:23:57 ID:ZqYBFF6z
>>136
これわかる方いません?
145Now_loading...774KB:2009/05/07(木) 02:56:18 ID:AsbS5BPr
MAP_READYじゃだめなんかな
146136:2009/05/07(木) 05:00:05 ID:ZqYBFF6z
MAP_READYだとあくまで準備完了で、実際のローディングは別なんですよね…
非同期だから当たり前なのかもしれないけれど、読み込み完了前(グレー画面)は
Mapオブジェクトを.visible = falseにしておいて、完了してから表示させたいんです

マップ生成 → 準備完了(グレー画面) → 地図の画像をすべて読み込み完了
new Map()    MAP_READY          ↑ここを検知したい↑
147136:2009/05/07(木) 05:03:07 ID:ZqYBFF6z
もちろん時間をおけばいずれローディングはされるんですけど、確実じゃないし、
そういうイベントがあるかどうかわからないので、試しに一度BitmapDataにdrawして
グレー画面が無いか画像を捜査しようかとおもったけど、クロスドメイン関係で出来ないっぽい…
148Now_loading...774KB:2009/05/07(木) 07:00:04 ID:WNuXK8GS
AS勉強間もないです。すいません。
以下のような関数がありました。(無駄な要素をはしょってます。)

mcA.addEventListener(Event.ENTER_FRAME,hoge);
function hoge(evt:Event):void{
mcB=mcA
if(mcA.y<100);
{mcB.y++
}else{
mcB.y=0;
}
mcA=mcB
}

これスクロールを永遠とさせるメソッドなのですが、
この関数を理解するまですごい時間が掛かりました。

@最初に変数mcBにmcAを代入して、
AmcAの条件(yの値が100より小さいか)に併せてmcBをスクロール・移動させる。
Bスクロールが終わったら反対に 変数mcAにmcBを代入する。
Cこの関数を繰り返す。

こういったように、繰り返し関数の中で
最初同じムービークリップの変数を与えて、与えられた変数を変化させて
差分を元のムービークリップに返す(代入)という。
やり方はよくあるのでしょうか?

見慣れないやり方で、ちょっと驚いたので、、。
よろしくお願いします。
149Now_loading...774KB:2009/05/07(木) 07:27:18 ID:AsbS5BPr
>>146
うーんGoogleMapあんまり使ったことないからわからんなぁ
でも現実問題としてマップは何十枚何百枚とロードする可能性があるわけだから、
そのうちのひとつでもロードできないと表示されないってのは問題があるんじゃないかな


>>148
そんなやりかた普通はしないな
変数名からしてMovieClipかSpriteだろうから多分その代入意味ない
mcAのまま普通にやったほうがいいと思うよ
150Now_loading...774KB:2009/05/07(木) 11:50:40 ID:g01KPwib
>>148
関係ないけど、その場合は「永遠と」じゃなくて、「延々と」だと思うっす
151Now_loading...774KB:2009/05/07(木) 15:50:06 ID:/u7xFpU6
代入はコピーでなく参照で行われるから
mcB.y++したら、mcA.y++やるのと同じ事じゃね。
なんかMovieClipだと特別な現象とか起きるんだっけ。
152Now_loading...774KB:2009/05/07(木) 22:10:47 ID:WNuXK8GS
説明不足ですいません。はしょっていない、
元々のソースをそのまま貼り付けます。
代入がすごく重要な役割をしているようです。

mc は、ライブラリにある高さ780pxある画像。
それをscrollRectプロパティで200pxの表示にさせるという前提条件が
ありました。

var nDefaultHeight:Number = mc.height;
mc.scrollRect = new Rectangle(0,0,200,180);
mc.addEventListener(Event.ENTER_FRAME,mcEnterFrameHandler);
function mcEnterFrameHandler(evt:Event):void{
var theScrollRect = mc.scrollRect;
if (mc.scrollRect.y < nDefaultHeight -180){
theScrollRect.y++;
}else{
theScrollRect.y = 0;
}
mc.scrollRect = theScrollRect;
}
153Now_loading...774KB:2009/05/08(金) 09:47:00 ID:eX4uyNyq
>>152
scrollRectは、参照してるRectangleを返すんじゃなくて、「参照してるRectangleの複製」を返すんじゃなかったかな?
DisplayObject.transform.matrixとかもそうだけど、AS3.0にはその手のプロパティがいくつかあるはず。
trace(mc.scrollRect == mc.scrollRect)
もfalseになると思うよ。

だからその手のプロパティの持ってる情報を更新したい場合には、
いったん複製を取り出す→複製の値を更新→複製を代入
という流れでコードを書く必要があるのよ。
「値をセットしたタイミングではじめて更新処理が行われる」みたいに考えてもいいかもね。
たぶん、そもそも代入時のsetterで、クローンした物を保持するような感じになってんじゃないかな?
154Now_loading...774KB:2009/05/08(金) 12:04:40 ID:L5uwNZA6
質問です。join関数がうまく動きません。
ご教授お願いいます。
var _str:String = "aaabccdeeff";
var _search_str:String = "b";
var _replace_str:String = "x";
var strArray:Array = _str.split(_search_str);
strArray.join(_replace_str);
trace(strArray.toString());
出力aaa,ccdeeff
155Now_loading...774KB:2009/05/08(金) 12:39:12 ID:eX4uyNyq
>>154
それは
trace(strArray.join(_replace_str));
でいいんじゃないの?
joinは元の配列を文字列にするわけじゃなくて、元の配列をベースにして作成した文字列を返すわけだから
156Now_loading...774KB:2009/05/08(金) 13:09:55 ID:L5uwNZA6
>>155
ありがとうございます。誤解していました。
157Now_loading...774KB:2009/05/08(金) 18:47:16 ID:7bWeR8yw
AS3.0のVectorで二次元配列はできませんか。
Arrayでは

var a:Array = new Array();
a[0] = new Array();

で出来ましたが・・・
いろいろ試行錯誤して

var a:Vector.<Vector.<uint>> = new Vector<new Vector.<uint>(5)>(5);

とかやってみたんですができませんでした。
158Now_loading...774KB:2009/05/08(金) 20:50:31 ID:doWVfgW/
a[0] = new Vector()
はやっぱり出来なかった?
159Now_loading...774KB:2009/05/08(金) 21:16:08 ID:Qj5fXsA8
AS3, flex3です。
flash パッケージ内のクラスのソースを見る事ってできますか?
mxパッケージのソースならSDKの中にあったのですが、
flash.text.TextFieldなどのソースは公開されてないのでしょうか。
160Now_loading...774KB:2009/05/08(金) 22:08:32 ID:IDeL739B
>>157

var myVector1:Vector.<Vector.<uint>> = new Vector.<Vector.<uint>>(2,false);
myVector1[0] = new Vector.<uint>(2,false);
myVector1[1] = new Vector.<uint>(2,false);
myVector1[0][0]=10;
myVector1[0][1]=10;
myVector1[1][0]=10;
myVector1[1][1]=10;

これで縦2横2のuint型配列ができる。
161Now_loading...774KB:2009/05/09(土) 03:47:22 ID:Rce0QkSn
as3です。
swfと同階層の、外部画像フォルダ(images)から30枚ぐらい画像をswfファイルがLoaderで、読み込む仕様で作っているのですが、
ブラウザのキャッシュフォルダ(temporary internet file)で画像がすべてそのまま残ってしまうのですが、
残させない方法ってないでしょうか。
(完全に防ぐというのは無理かと思いますが、とりあえずキャッシュに残っていないように見えれば大丈夫なのですが。)

ASだけで解決しない問題でしょうか。PHPとか絡ませることで対処できますでしょうか。
162157:2009/05/09(土) 08:31:22 ID:aWkchXX5
>>158
もちろん試しましたがダメでした。

>>160
できました!ありがとうございました。
163Now_loading...774KB:2009/05/09(土) 08:39:54 ID:xs30KbEh
>>149,151,153さん
ありがとうございました。

これはちょっと特別なプロパティのみにあてはまる
組み方なのですね。

もすこし勉強します。ありがとうございました。
164Now_loading...774KB:2009/05/09(土) 08:53:54 ID:eSdAS1Cn
どなたか分かる方がいたら教えて下さい。

AS3でmain.swfに外部のsub.swfを読み込んでいます。

main.swfからsub.swfに記述されている変数は取得できたのですが、
sub.swfからmain.swfに記述している変数を変更ができません。

main.swf

var loader:Loader = new Loader();
var load_obj:Object = new Object;
var path:String ="sub.swf";
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
loader.load(new URLRequest(path));
function onComplete(evt:Event) {
load_obj = loader;
loader.removeEventListener(Event.COMPLETE, onComplete);
swf_mc.addChild(loader);
marker_max = loader.content.MARKER_NUM;
}

として、sub.swfのMARKER_NUMにはアクセスできます。

sub.swfからmain.swfのmarker_maxへのアクセスがうまくいかないのです。

すみませんが、よろしくお願いします。
1651/3:2009/05/09(土) 10:52:39 ID:o3o5BuoY
デフォルト引数の省略について質問させてください。
AS3の勉強を始めたのですが、矩形を何度も作っていることに気づき矩形をつくるクラスを作成しました。
Test.asをビルドすると次の2つのエラーが出ました。

・C:\Test.as(14): col: 44 Error: シンタックスエラー : identifier が comma の前に必要です。
・C:\Test.as(15): col: 4 Error: シンタックスエラー : rightparen が addChild の前に必要です。

ネットで調べたのですが分かりませんでした(省略するつもりの引数がString型の場合はf("",…)で、というのは発見できたんですが)。
Number型だと(,,…)という形式では引数の省略が出来ないのでしょうか。

Test.asの13行目にコメントアウトしてあるように、引数を省略しなければswfにした時矩形は意図通り描画されていました。
毎回引数を入れるのが手間なのでクラスにしたんですが…。
どなたかご存知の方ご教示願えると大変助かります。
よろしくお願いいたします。


環境
XP Pro SP2 / FlashDeverop3.0.0 RC1
この2ファイルは同一ディレクトリにあります。
1662/3:2009/05/09(土) 10:53:21 ID:o3o5BuoY
Test.as
-----------------------------------
01| package {
02| import flash.display.Sprite;
03|
04| public class Test extends Sprite
05| {
06| public function Test():void {
07| init();
08| }
09| private function init():void {
10| callRoundRect();
11| }
12| private function callRoundRect():void {
13| //var myRR1:MyRoundRect = new MyRoundRect(0,100,100,20,5,5,0xCC55CC);
14| var myRR1:MyRoundRect = new MyRoundRect(,100,,,,,0x11ff55);
15| addChild(myRR1);
16| }
17| }
18| }
-----------------------------------
1673/3:2009/05/09(土) 10:54:27 ID:o3o5BuoY
MyRoundRect.as
-----------------------------------
package {
import flash.display.Sprite;
public class MyRoundRect extends Sprite{
private var MRRposX:Number;
private var MRRposY:Number;
private var MRRwidth:Number;
private var MRRheight:Number;
private var MRRellipseWidth:Number;
private var MRRellipseHeight:Number;
private var color:uint;
public function MyRoundRect(posX:Number = 0, posY:Number = 0, width:Number = 100, height:Number = 20, ellipseWidth:Number = 5, ellipseHeight:Number = 5, color:uint = 0x55AA33) :void{
this.MRRposX = posX;
this.MRRposY = posY;
this.MRRwidth = width;
this.MRRheight = height;
this.MRRellipseWidth = ellipseWidth;
this.MRRellipseHeight = ellipseHeight;
this.color = color;
init();
}
public function init() :void {
graphics.beginFill(color);
graphics.drawRoundRect(MRRposX, MRRposY, MRRwidth, MRRheight , MRRellipseWidth, MRRellipseHeight);
graphics.endFill();
}
}
}
168Now_loading...774KB:2009/05/09(土) 14:15:17 ID:S8XsQ4Td
>>161
URLの後ろに?○○って付けて読み込ませる
○○はランダムな文字列ね
まぁこんなの「読み込み キャッシュ」でググれば出るんだけど
169Now_loading...774KB:2009/05/09(土) 15:12:18 ID:aWkchXX5
MovieClipを動的に生成する際、絵柄を左右対称に(左右逆に)する事はできませんでしょうか。
以下の様にwidthをマイナスにしたらできるかと思ったんですが結果は変わりませんでした。

var m:MovieClip = new mcHoge();
m.width = -m.width;

addChild(m);
170Now_loading...774KB:2009/05/09(土) 15:55:41 ID:hAJexRLf
>>169
スケールじゃなかったっけ?
scaleX =-1
171Now_loading...774KB:2009/05/09(土) 15:57:46 ID:hAJexRLf
>>164
MovieClip(root).***
172169:2009/05/09(土) 16:41:16 ID:aWkchXX5
>>170
tkx!
173Now_loading...774KB:2009/05/09(土) 18:24:58 ID:hhXoFdx3
>>164
読み込んだ子 SWF ファイルから親 SWF ファイルにアクセスする
ttp://hakuhin.hp.infoseek.co.jp/main/as3/loader.html#LOADER_01
174Now_loading...774KB:2009/05/09(土) 20:20:09 ID:xs30KbEh
よく変数にデータ型を指定しますよね。
例えば、
var fuck:String = "いらっしゃい"

とか。データ型といえば、
String,Number,uint とかですよね。

でも、次のような場合は
データ型というよりクラス型です。

var dateObj:Date = new Date();

これって混乱しません?

例えば、クラス型もデータ型も指定できるような
状況ってないんでしょうか?
そのときはどちらを優先すればいいのでしょうか?
175Now_loading...774KB:2009/05/09(土) 22:16:42 ID:5HqqZ/+B
曜日ごとに絵を変えたいのですが(3フレーム目から月火水木金土日と作っています)
次のようにやっても毎回9フレーム目の日曜日になってしまいます。
どこがおかしいのでしょうか。
AS2、FlashMX利用です。

1フレーム目
aa_settei = new Date();
nichiji = aa_settei.getDay();
2フレーム目
stop();
if (nichiji == 0) {
gotoAndStop(3);
}
if (nichiji == 1) {
gotoAndStop(4);
}
if (nichiji == 2) {
gotoAndStop(5);
}
if (nichiji == 3) {
gotoAndStop(6);
}
if (nichiji == 4) {
gotoAndStop(7);
}
if (nichiji == 5) {
gotoAndStop(8);
}
if (nichiji == 6) {
gotoAndStop(9);
}
176Now_loading...774KB:2009/05/10(日) 00:04:14 ID:M0KCnWCM
>>175
0は日曜日らしいよ
177Now_loading...774KB:2009/05/10(日) 01:35:42 ID:ysL66wSU
>>168
161です。
読み込みキャッシュで、
各jpegファイルに?から乱数を付与してやっているのですが、
IEだとその?込みでしっかりとtemporary internet filesの中に
残ってしまっています。

力技でもいいので、さらに上を行く方法ってないでしょうか???
178Now_loading...774KB:2009/05/10(日) 02:57:04 ID:PQULA1DW
>>161
サーバ側をいじれるんならHTTPヘッダでキャッシュ制御したら?
HTTP/1.1ならCache-Control: no-cache、HTTP/1.0ならPragma: no-cache。
179178:2009/05/10(日) 03:24:46 ID:PQULA1DW
ttp://www.jinten.net/blog/archives/15
によると、クライアント側でもASでHTTPリクエストヘッダにpragma: no-cacheを追加すれば
キャッシュ抑止されるみたい。そうなんだー、知らんかった。
180Now_loading...774KB:2009/05/10(日) 04:02:01 ID:ysL66wSU
>>178
その方法だと、IE以外では有効なんですが、
IEだとダメみたいです。IEは強制的にキャッシュするみたいなんですが、
いい方法ないでしょうか
181178:2009/05/10(日) 04:42:09 ID:PQULA1DW
>>180
そうなんだ、IEの仕様なんだね。んじゃno-storeも指定してみるとか。
なんかASと関係なくなってきちゃったな。
182175:2009/05/10(日) 12:46:30 ID:5hdXUlbz
>>176
解決しました。
ありがとうございました。
183Now_loading...774KB:2009/05/10(日) 13:18:06 ID:dy1QhZ6U
>>180
そこまで頑張ってキャッシュを消そうとするのは何故?
キャッシュ消しても画像に直にアクセスしてDLするとか、
スクリーンショットとるとかされる可能性もあるが…
184Now_loading...774KB:2009/05/10(日) 13:33:16 ID:RpyL7lLG
たまに難癖つけるクライアント会社の担当がいるんだよなぁ。

JPGだと画像保存できるよね?→FLASHにします
FLASHだとブラウザにキャッシュが残るらしいんだが→キャッシュ残さないようにします
画面キャプチャで切り取れるみたいだが→いやそれはさすがにどうにも・・・

でもってその会社のえらい人が出てきて「若いヤツが融通の利かない事言ってわるいねぇ」と。
185Now_loading...774KB:2009/05/10(日) 15:41:02 ID:0IgC0tQx
>>184
偉い人が言わせてるのになw
186Now_loading...774KB:2009/05/10(日) 16:15:40 ID:ysL66wSU
>>181
161です。
No-Storeでもやっぱりうまくいかないですね。
ieだとサイトにアクセスできないとか、それはありえないし、
あとは外部読み込みをやめてしまうかですね、何か力技で思いつくものないでしょうか。
キャッシュのほうで観ると画像が真っ白になる仕様とか。
すみません、もはや完全にasからずれてますね 

>>183
完全に技術的な限界を知りたいという好奇心です
187Now_loading...774KB:2009/05/10(日) 19:19:52 ID:PQULA1DW
>>186
ファイルの拡張子とっちゃうのはどうよ?サーバ側のファイルの管理が面倒になりそうだけど。
.jpgとかついてなければキャッシュフォルダを覗いても
パッと見それが画像ファイルとワカランし、クリックしてもビューアは起動しないし、いいんじゃね?
ASのLoaderが拡張子やContent-Typeを無視してファイル先頭のマジックナンバーで内容を判断
してくれれば、JPEGやPNGなどとしてちゃんと表示してくれるんじゃないかな。
188Now_loading...774KB:2009/05/10(日) 20:56:01 ID:M0KCnWCM
168だけど勘違いしてた、キャッシュフォルダの中身から消したい、見せたくないってことか
AS3ならBytearrayとかでビット演算しないと画像にならないとかできないかな?
189Now_loading...774KB:2009/05/10(日) 22:49:34 ID:ysL66wSU
>>187
拡張子とってもバッチリいけました。ありがとうございます。
asは拡張子なくても判断するの知りませんでした。あとは、
新しい画像ファイルをどんどん追加していく予定にしているので、
そのたびに拡張子を取る仕様に作ってかないとダメですね。

>>188
Bytearray全然知らなかったので、いま調べてるところですが、
外部に変換される画像になるデータを置いておいて、
それをASが読み込んで画像にして表示するってことですよね?
190Now_loading...774KB:2009/05/10(日) 23:12:21 ID:M0KCnWCM
>>189
そう
でも予め画像を加工しないとならんから管理は面倒になるよな
cgiでリアルタイムに、ってのも可能だろうけど
191Geek:2009/05/11(月) 10:07:59 ID:pKGJiJtt
Webサイトのトップページにちょっと使おうと思ってAS弄ってるんですが、
文字をボタンにする時に、クリック可能な範囲をテキストフィールドの
枠全体ではなく、文字の黒くなっているところだけにしたいんですが
どこのパラメータ弄ればいいかが見つからないです。

以前Palaflaか何かで試したときは自動でそうなったのですが。(Palafla自体は使い道が違う気がしてやめました)

あと文字を画面いっぱいまで大きくする方法もあれば教えていただきたいです。

あ、要するにやりたいこととしては画面いっぱいに
一文字のでっかいボタンを作りたいんです。
192Now_loading...774KB:2009/05/11(月) 10:50:47 ID:xYQnZzyB
Netstreamを使った、flvのループ再生なんだけど、
映像と映像の合間にどうしても真っ黒な画面が入ってしまうんだけど、
これを回避する方法はないですか
193Now_loading...774KB:2009/05/11(月) 22:13:26 ID:GkDu9cuP
FLASH本のうち、インスタンスの説明箇所で
「椅子とタンス」などとくだらない駄じゃれを
書いている本をあげてください。
194Now_loading...774KB:2009/05/12(火) 02:13:17 ID:E10TXF+b
配列の要素がもつプロパティを新たな要素として新しい配列を作る方法はありますか?       例えば、array1 = [太郎,花子,次郎,三郎,陽子] という配列から    array2 = [男,女,男,男,女] という配列を作りたいのですが。AS3です。よろしくお願いします。
195Now_loading...774KB:2009/05/12(火) 03:18:03 ID:vWmx8iZQ
var anotherArray = sourceArray.slice()
とかすれば出来た気がする。多分
196Now_loading...774KB:2009/05/12(火) 03:19:52 ID:vWmx8iZQ
と思ってよくみたら全然求めてる事が違った。
197Now_loading...774KB:2009/05/12(火) 06:45:06 ID:+sDJ7Cyy
198Now_loading...774KB:2009/05/13(水) 12:59:18 ID:OADINq8V
環境はwinXP,FlashCS3,as3.0です。
クラスメンバを列挙したいのですが、
for inは動的に追加されたプロパティのみで、
describeType()ではプライベートメンバを表示してくれません。
他に方法はありますでしょうか?
199Now_loading...774KB:2009/05/13(水) 13:14:35 ID:kNWg+YFp
>>198
実行時には無理なんじゃないかな
200Now_loading...774KB:2009/05/13(水) 13:53:00 ID:OADINq8V
>>199
ありがとうございます。
ひとまず列挙はあきらめます。
201Now_loading...774KB:2009/05/13(水) 14:45:44 ID:gjXk0L1g
環境 :XP
Flash:CS3
as :2.0

ボタンを押すと任意のテキストが縦スクロールで表示されるasを考えています。
最初はフレームとモーションを使って移動するように作成していたのですが、
あまりにもフレームが膨大な量になってしまった為、
もっと簡単に出来るのでないかと思い質問させていただきます。
何卒、よろしくお願いします。
202Now_loading...774KB:2009/05/13(水) 16:46:09 ID:Vuz7FXcJ
MovieClipに対してプロパティのカラー効果/スタイル/着色
で色をかけるやつを、プロパティからではなくAS3のコードで
動的に色を設定したいのですがどのようなコマンドを書けばいいのでしょうか!?

基本的な事ですみません・・・
203Now_loading...774KB:2009/05/13(水) 17:13:30 ID:XeuGcM0h
>>201
フレーム毎に テキスト._y+=xxx; を使う。


>>202
var myColor0:ColorTransform=new ColorTransform;
myColor0.color=R値 << 16 | G値 << 8 | B値;
MC.transform.colorTransform=myColor0;

後は自分で調べてみんしゃい。
204202:2009/05/13(水) 17:23:27 ID:Vuz7FXcJ
>>203
おおできました。でも!
元の色(ベースは白黒のグラデーション)に
うっすら赤みがけたいんですが、MC自体が透明がかってしまいます

var ct:ColorTransform = new ColorTransform();
ct.color = 0xff0000;
ct.alphaMultiplier = 0.3;
prmMc.item.transform.colorTransform = ct;

alphaMultiplierっていうのが色をかけるアルファだと思うんですが、
MC自体がアルファかかって透明っぽくなってしまいます・・・・
205Now_loading...774KB:2009/05/13(水) 17:50:13 ID:gjXk0L1g
>>203
ありがとうございます!
早速試してみます!
206Now_loading...774KB:2009/05/13(水) 18:16:03 ID:de+O1CQK
ct.color = 0xff0000;

ct.color = 0xA0ff0000;
にするとか?
207Now_loading...774KB:2009/05/14(木) 05:12:38 ID:SRXK5ync
WinXP-ProでFlashCS3(AS3.0)です。

AS3.0ならXMLを掃き出す(吐き出す?)のは簡単とのことですが、具体的にどう
やるのでしょうか?
Webや本で調べても、XMLオブジェクト作成の所までしか分からず、実際のXML
ファイル(例えば、abc.xml)の生成法が見つかりません。

208Now_loading...774KB:2009/05/14(木) 10:09:22 ID:goIAf3XX
Flashってクライアントサイドのセキュリティサンドボックスの外側に
ファイルを書き出したりできないんじゃない。
やった事ないから知らないけど。
209Now_loading...774KB:2009/05/14(木) 10:21:35 ID:+sgTmyV1
>>207
XMLデータの作成はこんな感じ。超簡単になった
var value:String = "hoge";
var id:int = 0;
var xml:XML = <root />;
xml.appendChild(<value id={id}>{value}</value>);
trace(xml);

ファイルとして保存するのは、FileRefferenceを使ってこんな
var fr=new FileReference();
fr.save(xml, "abc.xml"); // ダイアログを表示する

セキュリティの関係上、ユーザーが保存先を指定しない、「知らないうちに保存する」ような操作はできない。
ただ、FlashだったらCS3のバージョンだとたぶんまだFileRefferenceのsaveメソッドが使えないんじゃないかな?
210Now_loading...774KB:2009/05/14(木) 13:36:50 ID:U4mI2EdK
>>209
なるほど。やってみます。
211Now_loading...774KB:2009/05/14(木) 15:50:24 ID:Fig+bGLu
WinXP Flash8 IE7です。

まさに下記のサイトの通りなのですが、
ttp://chabudai.sakura.ne.jp/blog/?p=56

・1回目の訪問ではオープニングを表示
・そこからFlashボタンでページ遷移して、また戻ってきたときはオープニングをSKIPした状態で表示
・ブラウザを閉じてまた開くとオープニングから再生

というのを実現したいのですが、上記サイトよりスマートな方法はないでしょうか?
212Now_loading...774KB:2009/05/14(木) 15:58:37 ID:8Ae4BDSL
AS2です。onEnterFrame内でmoveTo、lineToを使って異なる場所に36本の線を
描画していますが、時間が経つに従って描画が遅くなります。
何かリソースを解放したりしないといけないのでしょうか。
213Now_loading...774KB:2009/05/14(木) 16:00:55 ID:9mbhPwyn
現在CS3のAS2、MacOS10で制作を行っております。
最終的には、Macプロジェクタ、Winプロジェクタをパブリッシュして使用しようと予定しています。

コンポーネントのtextAreaにおけるテキストのjustify
コンポーネントのtextAreaに関して質問です。


ステージの_rootに配置されたコンポーネントのtextArea(インスタンス名:mytextArea)に、
外部テキストから読み込んだ文章(myText = <p>本日は・・・でした。</p>)を表示しようとしています。読み込んだ文章に下線等を使用したいため、HTMLの使用OKの状態にしています。

そして、下記のような設定で読み込んだ文章にJustifyと色の変更をかけようとしたのですが、
色の設定は反映されるのですが、どうしてもjustifyだけが反映されません。

var my_styles = new TextField.StyleSheet();
my_styles.setStyle("p",{textAlign:'justify', color:'#CC6699'});
mytextArea.styleSheet = my_styles;
mytextArea.html = true;

ためしにrightやフォントサイズの変更を試したところ反映されました。
パブリッシュ設定もver8に設定してあります。

どなたかjustifyの設定方法をご存知の方がおられましたら、教えていただけないでしょうか。
よろしくお願いします。
214Now_loading...774KB:2009/05/14(木) 16:06:33 ID:DhDokNEj
>>211
それなら戻ってくる時に、オープニングの後のフレームに飛ばせばいいだけでは?

スマートっつか、SharedObject使えば、Flashだけで完結するとは思う。
215Now_loading...774KB:2009/05/14(木) 16:40:17 ID:+d1E5esi
スクリプトの編集画面で
「\」と表記したいのですが「/」で表示されてしまいます。
制御自体は問題ないのですが、「/」で表せるにはどこを
設定すればよろしいでしょうか?
216Now_loading...774KB:2009/05/14(木) 16:48:04 ID:DhT70Gh3
>>215
それってAS3.0じゃね?
3.0はそもそも「/」じゃないのかと。
217Now_loading...774KB:2009/05/14(木) 17:37:31 ID:+d1E5esi
はい。AS3です。
AS3の参考書を見ると「\」と表記しているので
どっか設定があるのかと、、。
218Now_loading...774KB:2009/05/14(木) 18:24:29 ID:jcrilyB4
>>212
onEnterFrameということは何度も描画されてないかな?
219Now_loading...774KB:2009/05/14(木) 18:36:57 ID:Fig+bGLu
>>214
同じドメインのページから「戻ってきた」っていう判断をFlashにさせないとだめですよね?
なのでJSかSharedObject使って「一旦オープニングを見たよ」という情報を
どこかでやり取りしないとだめですよね?

ちなみに調べた結果SharedObjectはブラウザ閉じても残っちゃうので、
再起動したとき「またオープニングから始める」って言うのができないみたいです。
220Now_loading...774KB:2009/05/14(木) 19:18:19 ID:ttfH4aoO
自前のスプライトクラスの上にListBoxを動的に表示させたいのですが、うまく行かなくて困ってます。

ただのテキストラベルのような物だと
 var textField:TextField = new TextField();
 textField.text = "Hello World!";
 addChild(textField);
こんな感じでオブジェクトを作成してaddChild()すれば表示されます。
これを Listオブジェクトに変えると、実行しても何も表示されません。(エラーも出ません)

無料のFlexSDK3.3.0.4852のアドビ版にて mxmlcを使ってコンパイルしています。
mxmlは使わずASだけで記述しています。

import fl.controls.List; ではコンパイル時に未定義とエラーになったため
import mx.controls.List; をインポートしています。

ググって見たのですが、該当するサンプルコードも見つけられず途方にくれています。orz
221Now_loading...774KB:2009/05/14(木) 20:06:37 ID:dsmCqFSm
>>219
ページを閉じなければ2度目のオープニングはスキップ
でいいんじゃね?AS2ね
1振れ目に
if (reOpen == undefined) {//reOpenが定義されていなければ初訪問
reOpen = 1;
gotoAndPlay("opening");
} else {
gotoAndPlay("contents");
}
222Now_loading...774KB:2009/05/14(木) 20:10:03 ID:N8Qo2O1d
>>220
flexを使ったことがないし、ListBoxというのも使ったことがないので
違ってたらすいません。
ListBoxがUIComponentのサブクラスならsetSize(w,h)が必要だと思います。
223Now_loading...774KB:2009/05/14(木) 20:24:15 ID:DhDokNEj
>>219
もしかして、トップにはFlashがひとつあるだけで、
それ以外の内容は別のhtmlに飛ぶっていう仕組みか?

あえていうと、それをやめるのがいいかと……いや、すまん。ごめんね。
でもトップだけFlashって、個人的には不便な作りだと思うんだよね。
あと、クッキー使ってもオフにしてれば無意味になってしまうし
再起動した時に「またオープニングから始め」たくない人もいるだろうし
一番シンプルにできるのは、スキップボタンつけとくとかじゃね?
224Now_loading...774KB:2009/05/14(木) 20:52:23 ID:kdk3vHtx
ロールオーバー効果を作ってるんだけど、サーバ上ではちゃんと反応するのに、ローカルでは反応しない。
こんな現象経験したことある人いますかー!
225Now_loading...774KB:2009/05/14(木) 21:11:19 ID:ttfH4aoO
>>22
すいません。 ListBoxではなくListです。(見出しの書き方が悪くて誤解されたようですみません)
setSize()は未定義のメソッドでコンパイル蹴られました。
width と height をそれぞれセットしていますが、何も表示されないです。orz

部分抜粋ですが
oList = new List(); ←クラスのprivate変数でList型
oList.dataProvider = aObj; ←クラスのprivate変数でArray型
oList.x = 16;
oList.y = 16;
oList.width = 100;
oList.height = 100;
oList.visible = true;
addChild(oList);

こんな風に書いています。
226Now_loading...774KB:2009/05/14(木) 21:11:59 ID:ttfH4aoO
ごめんなさい
上のは >>222 宛てです。
227Now_loading...774KB:2009/05/14(木) 21:44:31 ID:N8Qo2O1d
>>226
あとは、スタイル関係とか?
すいません、CS3で若干コンポーネント触った程度なのでわかりそうもないです。
この検索結果が参考になれば良いですが。
http://www.google.co.jp/codesearch?hl=ja&lr=&q=%22new+List%22+mx.controls+lang%3AactionScript

自分の環境はFlashCS3で、
Flashのインストールフォルダから既存のコンポーネントのソースを
ローカルにコピーして、いじったり、調べたりしてました。
228Now_loading...774KB:2009/05/14(木) 21:47:36 ID:ttfH4aoO
>>227
ありがとうございます。
もうあきらめかけてましたけど、参考にしてもう少しがんばってみます。

(CS3は持っていないので、もしかしたら使えないのかも知れないですね。)
229Now_loading...774KB:2009/05/14(木) 22:11:47 ID:ttfH4aoO
>>227
setStyle()を呼び出したら、
Error: No class registered for interface 'mx.styles::IStyleManager2'.
at mx.core::Singleton$/getInstance()
at mx.styles::StyleManager$/get impl()
at mx.styles::StyleManager$/isInheritingStyle()
at mx.core::UIComponent/setStyle()
at test1()

上記のエラーが出ました。
そもそもFlexSDKのASでは何か必要なライブラリ(というかコンポーネントと呼ぶのかな?)が
足りなくて使えないような気がします。
230Now_loading...774KB:2009/05/14(木) 22:44:31 ID:7YRMqCzp
>>225
aObjをArrayじゃなくてArrayCollectionにしたらいいんじゃないかな。
dataProviderにArrayを与えるとArrayCollectionでラップされて、ListはこのArrayCollection
への変更しか認識しない。つまり元のArrayを直接いじってもListには反映されない。
もしくは、Listの内容が固定ならdataProviderに設定する前にaObj:Arrayに要素を追加しとくのでもよい。
231Now_loading...774KB:2009/05/14(木) 23:27:46 ID:ttfH4aoO
>>230
ありがとうございます。
明日また試してみます。
232Now_loading...774KB:2009/05/15(金) 01:06:38 ID:1YNxKDLH
>>220,225 です。

>>230 さん
遅くなりましたが、一応試してみました。
結果から言うと変化無しでした。

またdataProviderに何もセットしないでも本来ならおそらく何か表示はされると思うのです。
(外枠やスクロールバー等)
フリーのFlexSDKを対象としたASだけで作ってあるサンプルプログラムが置いてあるサイトを探し回りましたが、
どうもinportしているのが flash.xxxx.xxx のようにパッケージ?が flash の物しか使用されていない事に
いまさら気がつきました。(import flash.display.*; とか import flash.media.*; 等の事です)

製品版を持っていないとfl.xxxとかmx.xxx等はASからは使えないのかもしれないですね?
SDKのsamplesフォルダの下を全コンパイルしてみましたが、mxmlで記述されている物はリストボックスやコンボボックスが使用可能でした。
233Now_loading...774KB:2009/05/15(金) 02:24:27 ID:4Q85R+iO
>>232
無償のFlexSDKだけでmxコンポーネント使ったswfつくれるよ?俺実際これで作ってるし。
fl.*はFlashCSのコンポーネントなのでFlashCS買わないと手に入らないけど。
有償のFlex(=FlexBuilder)はFlexSDKと比べて、Eclipseベースのリッチな開発環境がついてるのと、
グラフチャートなどより高度なmxコンポーネントが追加されてるくらいかな。

参考資料:
Adobe Flexリソース: ttp://www.adobe.com/support/documentation/jp/flex/
234Now_loading...774KB:2009/05/15(金) 04:02:33 ID:P8WE+PcD
環境)OS:WinXP-Pro,FlashCS3-Pro(Player9.0,AS3.0)

XMLListで質問です。下記のXMLを var xml:XML でxmlとして

[parm xmlns="http://test.20090515/"]
[value id="0"]19[/value]
[value id="1"]23[/value]
[/parm]

このvalue要素(19, 23)を
nsStr = xml.namespace();//Namespaceの取得
var ns:Namespace = new Namespace(nsStr);
//
default xml namespace = xml.namespace();
var valueList:XMLList = xml.ns::value;
trace (valueList);

で表示しようとしましたが、下記のようにNamespace入りタグでtraceされました
[value id="0" xmlns="http://test.20090515/"]19[/value]
[value id="1" xmlns="http://test.20090515/"]23[/value]

どうすべきでしょうか?
※タグ記号<>はLive2chを使うと消えてしまうので、[ ]で書いています。
235234:2009/05/15(金) 05:33:54 ID:P8WE+PcD
(自己解決しました)
trace (valueList);

for each (var obj0:Object in valueList) {
trace (obj0);
}

でOKでした。
236227:2009/05/15(金) 05:37:02 ID:qLvrbySx
>>232
flexをインストールして、調べてみました。
asファイルをコンパイルすると、なぜかApplication.applicationがnull
で、UIComponentの更新などにかかわると思われるUIComponentGlobals.layoutManagerなどがnullになってました。

mxmlファイルをコンパイルして作成したswfでは
Application.applicationの値が正しく設定され、Listが表示されました。
237Now_loading...774KB:2009/05/15(金) 06:13:17 ID:1YNxKDLH
>>233
>>無償のFlexSDKだけでmxコンポーネント使ったswfつくれるよ?
はい、mxmlのサンプルをコンパイルした場合は正常に表示されているのを確認しました。
私がやろうとしているのは、 >>220 に書いている通りASのソース内で(ASだけで記述しmxmlとの連携はしない)
Spriteクラスの派生クラス内で特定のイベント時に動的に mx.controls.List のオブジェクトを表示させたいのです。
もしそれも普通に出来るよ?って意味でしたらすみませんが、最小限のサンプルコードを掲示して頂けるとありがたいです。

>>236
CS3をお持ちなのにわざわざ環境を作ってまで試して頂いてありがとうございます。
最近FLASHを勉強しはじめたド素人なので理解できてないのですが、ASからmxコンポーネントを呼び出す場合に
何か特殊な初期化を実行しておかないとダメって事ですかねぇ?

仕事の関係でJAVAを使った経験があるのですが、ASは文法やメソッドのネーミングが似ていて自分にも理解しやすいかも?
と、気軽に踏み込んでみたら返り討ちにあってしまった感じですw (^_^;
238Now_loading...774KB:2009/05/15(金) 08:05:15 ID:YXp9Ucao
>>237
いや、ASだけで書いても使えるし。
コードは、今パソコンじゃないから後で。
239Now_loading...774KB:2009/05/15(金) 09:49:37 ID:KcNlVHRk
Flashコンポーネントは
Flashの体験版とかで、コンポーネントの中身をステージにドラッグして
SWCファイルで書き出すとかすれば出来るらしい。検索すればでてくる。

あとはキースピータズがもの凄くシンプルなコンポーネントのライブラリだしたり
してる。日本人でもこの前インタフェース用ライブラリ開発してるって人みかけた。
http://code.google.com/p/minimalcomps/
240Now_loading...774KB:2009/05/15(金) 10:15:16 ID:1YNxKDLH
>>238
出来るのですか!散々探し回ってあきらめかけていたので本当に助かります。 ありがとうございます。

>>239
体験版からfl系のコンポーネントを抜き出す話は調べまくってる時に見かけたのですが、
なんか後ろめたい感じがしてやめました。
minimalcomps 良さそうですね。 ありがとうございます。
SWCを flex_sdk\frameworks\libs の下に置いておけば使えるようになるのかな?
これから出かけますので帰ったらそれも試してみたいと思います。

>>これまでレス頂いた皆さん
ASプログラミングに慣れている人から見れば、相当バカな事を聞いているのでしょうけど、
かまって頂いてありがとうございます。
241212:2009/05/15(金) 10:39:59 ID:vpdF8P/z
>>218
はい、毎回描画しています。20FPSにしていますので、1秒間に720本の線を
描いています。10秒だと7200本。こんな使い方、間違ってるのでしょうか。
242Now_loading...774KB:2009/05/15(金) 10:58:05 ID:skWo+9YU
clearしているかい?
243Now_loading...774KB:2009/05/15(金) 11:13:05 ID:7ANDpFXj
ひたすらベクターが増えていって、非常に重くなっていきます。
描画を一度のみにするか、clearをするかで解決するかも。
もし、線を毎フレーム次々に追加していきたいならBitmapdata.draw
を使うと良いと思います。
244Now_loading...774KB:2009/05/15(金) 12:28:58 ID:YXp9Ucao
>>240
ごめん。俺の勘違いでした。ホントごめん。mxmlなしではできないみたいです。
代わりに、こんな方法で勘弁して。(もう見つけたかと思うけど)

●main.mxml
<NewClass xmlns="*" />

●NewClass.as
package
{
 mx.controls.List;
 mx.core.Application;
 mx.events.FlexEvent;
 public class NewClass extends Application{
  public function NewClass() {
   addEventListener(FlexEvent.CREATION_COMPLETE, function():void {
    var l:List = new List();
    l.dataProvider = ["Hello", "World"];
    addChild(l);
   });
  }
 }
}
245Now_loading...774KB:2009/05/15(金) 13:29:35 ID:YXZKlJmj
名前空間を持つXML読み込みとEvent.ENTER_FRAMEが併記できず困ってます。
環境はFlashCS3(AS3.0)とWinXPです。

最初フレームアクション記述で下記のXML読み込みのみを実行したところ、
何も問題は有りませんでした。
var loader:URLLoader = new URLLoader();
loader.addEventListener (Event.COMPLETE, completeHandler);
loader.load (new URLRequest("new XML.xml"));//new XML.xmlを読み込む
function completeHandler (event:Event):void {
//実際の読み込み処理
}

ところがこの下に、試しに具体的な処理がないフレーム処理(下記)を追加したところ、
エラーとしてあらゆるクラスが一覧となって繰り返し出力されました。
addEventListener (Event.ENTER_FRAME,onFrame);
function onFrame (frameEvt:Event) {
}
具体的なエラーの内容は http://upload.jpn.ph/upload/img/u40114.jpg です。

この場合、どうすれば良いのでしょうか?
アドバイス願います。
246Now_loading...774KB:2009/05/15(金) 14:12:44 ID:qMY3jkMT
>>237
あーmxmlなしで「asのみで」かぁ。mxmlも中ではasに変換されてるからできなくはなさそうだけど、
mxmlcがやってくれるflexフレームワークのブートストラップを全部自分でやることになるのでツライと思う。
mxmlc -keep MyClass.mxml で生成されるASコードを見てみるといいよ。
mxコンポーネントを使うなら>>244 の言うようにトップはmxmlにしてブートはmxmlcに任せた方がいいよ。
247245:2009/05/15(金) 15:09:37 ID:YXZKlJmj
(追記)
エラーはフレームレート(30fps)で繰り返し出ていて、各繰り返しの末尾に
 VerifyError: Error #1025: 無効なレジスタ 2 がアクセスされました。

があります。
このエラーについても調べましたが、これも分かりませんでした。
248212:2009/05/15(金) 15:16:46 ID:vpdF8P/z
>>242-243
Bitmapdataって知らなかったのですが、タイミングをみて全ての線を
BitmapDataとしてdrawして、同じ位置に貼り付けた後Clearするって
方法があることが分かりました。割とFAQだったのですね。
ありがとうございました。
249Now_loading...774KB:2009/05/15(金) 18:15:55 ID:tZaqfej3
Win2000って人も少数ながらいると思うけど、Flash Player Ver9以上ちゃんと動いてるのかな。
250Now_loading...774KB:2009/05/15(金) 19:22:32 ID:I4LcxvIO
>>245
AS3で名前空間つきのXMLは原因不明なエラーが出るとぽちぽち見た気がする
前扱ったときは面倒だから自力で名前空間を消しました
同じように名前空間消して対処している人はいるみたい↓
ttp://d.hatena.ne.jp/sato-shi/20090508/p1
251Now_loading...774KB:2009/05/15(金) 20:27:29 ID:MoASPWiy
>>249
俺2000だけど最新でいけてる
252962&965:2009/05/15(金) 20:30:12 ID:YXZKlJmj
>>250
レス有難うございます。幸い、自己解決できました。
上の
function completeHandler (event:Event):void {
//実際の読み込み処理
}
での処理とは、try〜catch を置いてその中に

var xml:XML = new XML(event.target.data);
nsStr = xml.namespace();
var ns:Namespace = new Namespace(nsStr);
//default xml namespace = xml.namespace();// ←※ これがあるとVerifyErrorになる。
var node_parm:XMLList = xml.ns::parm;
for each (var obj0:Object in node_parm) {
//配列に代入
}

としました。ここでコード右の注釈の通り、default xml namespace = xml.namespace() 
という通常は必要な記述が悪さをしていたらしく、無効にしたところ
問題なく動作しました。
253245&247:2009/05/15(金) 20:32:51 ID:YXZKlJmj
あ〜ん、なまえ間違えちゃったよ。

962&965 → 245&247 です。
254Now_loading...774KB:2009/05/16(土) 00:00:35 ID:Ii6QlAbs
FlashCS3(AS3.0),WinXP-Pro

外部ファイル(Txt)を読み込む際に、その外部Txtの状態を監視する
方法ってありますか?つまり、
A) 外部Txtが何も変化を起こしていない → そのまま読み込む
B) 媒体への書き込み中(Busy時?) → 読み込みを中止する

というようにASで切り替えるものです。
よろしく願います。
255Now_loading...774KB:2009/05/16(土) 02:58:57 ID:EiUxDGH7
>>244
遅くなりました。 240です。
ああw やっぱりmxmlがないと無理ですか、
でも、そのコード参考になります。 ありがとうございました。

>>246
mxmlとASのみで記述する違いを理解できていないため、まずはASの勉強としてやり始めたばかりです。
なるほどブートストラップが異なるのですか! まだ本当に小規模のプログラムを作ってみただけですが、
今後もう少し組めるようになったら、mxmlと組み合わせたやり方も挑戦してみます。
ありがとうございました。
256Now_loading...774KB:2009/05/16(土) 14:33:00 ID:WaK01DFo
>>254
読み込んだ時点との更新タイムスタンプ比較するとかじゃね
257Now_loading...774KB:2009/05/16(土) 18:16:21 ID:+m81ynCV
>>254
俺だったらテキストに直接アクセスしないで
ファイルロック状態を判断するサーバサイドスクリプトにアクセスするように作る。
258Now_loading...774KB:2009/05/16(土) 19:58:27 ID:DIfjmUkT
すいません。Graphicsクラスは静的クラスですか?
259Now_loading...774KB:2009/05/16(土) 20:48:06 ID:vdYtzZCf
yes
なぜ調べない
260Now_loading...774KB:2009/05/16(土) 20:56:07 ID:5FfrfguL
>>256-257
さんきゅう。更に調べてみます。
261258:2009/05/16(土) 21:12:21 ID:DIfjmUkT
>259さん
ありがとう。ヘルプを見ても載ってなかったので。
262Now_loading...774KB:2009/05/16(土) 22:44:37 ID:/UIsZPd2
263258:2009/05/16(土) 23:41:27 ID:DIfjmUkT
ありがとう。でも「静的」とか「static」とか書いてないのに。
静的クラスってわかるのですか?

>ActionScript コードから直接 Graphics オブジェクトを作成することはできません。
これが静的クラスであることを意味するのでしょうか?
264Now_loading...774KB:2009/05/16(土) 23:59:28 ID:vdYtzZCf
>>263
いや本当は静的クラスじゃないんだけどね
ShapeとかSpriteとかにgraphicsプロパティがあって、そのプロパティを通して使用することができる
Graphicsクラスだけを単独で生成することはできない

厳密な意味で静的かどうか知りたかったのならすまん
265Now_loading...774KB:2009/05/16(土) 23:59:41 ID:GKvwKZpy
>>259
Graphicsが静的ってのは違うんじゃないかなー
静的クラスてのはMathみたいにstaticメンバ・メソッドしかないクラスのことじゃね?
Graphicsのインスタンスは自分では作れなくてもFlashランタイムは作ってくるし、
インスタンス毎に情報を保持してるだろうから静的とは言わないと思う。
266258:2009/05/17(日) 00:38:20 ID:HMBRzsPC
264さん265さん
ありがとうございました。

自分はnewでインスタンスが生成されないものを
静的クラスと思ってました。

勉強になりました。ありがとうございます。
267Now_loading...774KB:2009/05/17(日) 01:31:48 ID:/+7m07w/
厳密にいうとSingletonパターンの一種じゃない。
一つだけ生成されてる事が保障されているクラス。

http://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
268258:2009/05/17(日) 02:20:11 ID:HMBRzsPC
267さんありがとうございました。
えっとリンク先、僕にはちょっと難しかったです。

でもこんなことですかね。
確かSpriteとMovieClipの生成時に、Graphicsクラスが(自動的に)生成されたんですよね。
つまりは、Graphicsクラスは、SpriteとMovieClipの子クラスじゃなければならなくて、
他の全然関係のないところにクラスが生成されないように、newでの生成を禁止している。

ところで、Javaの書き方と、ActionScript3.0の書き方がそっくりびっくりしました。
269258:2009/05/17(日) 02:40:35 ID:HMBRzsPC
いや。僕の勘違いでした。上の件撤回します。すいません。
270Now_loading...774KB:2009/05/17(日) 02:52:46 ID:46qFPsw/
Flash CS4でAS3スクリプトを使い、サイトのメニューを作っています。
IE8で動作確認を行っているのですが、[F5]キーで更新した時に表示されません。
表示領域をクリックしたり、他のウィンドウをアクティブにした後に再度IE8をアクティブに
すると表示されます。
更新に関して何かスクリプト記述が必要でしたらご教授頂ければ幸いです。

やっている事は、
・タイトルロゴの読み込みを待つ(ロゴは動的ではなく、ムービークリップに貼り付けて静的
にトゥイーン)。
・タイトルロゴを上から下に移動。
・最後のフレームで一つ前のフレームへgotoAndPlay()。
以上です。
切り分けのため、ボタンは全て取り去りました。
271Now_loading...774KB:2009/05/17(日) 04:23:18 ID:wq6QFINp
>>270
IE8に対するHTMLの問題はどう?
他のブラウザ(例:FireFox)を持っていたら試すのも一案。
272Now_loading...774KB:2009/05/17(日) 13:41:19 ID:HMBRzsPC
すいません。
メソッドを変数に代入するという意味がよくわかりません。

例えば:
channel = snd.play(pausePos);

上記の場合、プログラムを実行するときは
channel();

とするのでしょうか?
273Now_loading...774KB:2009/05/17(日) 14:35:08 ID:e37/jOst
channel = snd.play;
channel(pausePos);
じゃないかな。
274Now_loading...774KB:2009/05/17(日) 15:36:50 ID:HMBRzsPC
ありがとうございます。
でもそれだったら、
function関数 で作ればいいような気がします。

function channel()
{
snd.play()
}

あれ、なんで変数にメソッドを代入するんだろう。。
275Now_loading...774KB:2009/05/17(日) 15:47:50 ID:tVjWWKlp
>>274
var currentFunc;

function funcA()
{
trace("すき");
currentFunc = funcB;
}

function funcB()
{
trace("きらい");
currentFunc = funcA;
}

currentFunc();
stop();

とかさ。
276Now_loading...774KB:2009/05/17(日) 15:49:04 ID:tVjWWKlp
currentFunc = funcA;
currentFunc();
stop();
277Now_loading...774KB:2009/05/17(日) 16:29:31 ID:HMBRzsPC
275さん。
すごいヒントありがとう。


えっと。うんと。よく考えておきます。
278Now_loading...774KB:2009/05/17(日) 16:40:01 ID:UIbbFa+Z
失礼します。
Flex SDK から始めたんですが、Flash のフレームの概念がわかりません。
プログラムを書いて、それが実行されるのとフレームはまったく別の流れなんでしょうか?
描画更新はフレーム毎に行われ、そこでプログラムは一時中断されるのでしょうか??
ゲームなどを作るとき、よく分からないので ENTER_FRAME の時に描画したりしてますが…結構無駄な気もします…。
本家サイトの説明でもその辺の記述が一切見付からなくて、困っています。
それと、イベントがいつ発生するかもよくわかりません…。
マウスのクリックなど、できたらイベントを使わないで取得できたら嬉しいんですが…。
279274:2009/05/17(日) 23:25:38 ID:HMBRzsPC
こういうの無名関数っていうんですね。
でもいまいちこの無名関数の利点がよくわからん。。
280Now_loading...774KB:2009/05/17(日) 23:49:37 ID:aEE7spcQ
>>274
関数も数値やオブジェクトと同じように一つの値として扱えることは意味があるよ。
f = myfunc; のような代入式の形じゃあまり見かけないかもしれないけど、よく使われる
addEventListener()でもイベントハンドラ(=関数)を引数に代入するでしょう?
やってほしい処理をポンと渡せるのってとてもベンリだと思うのです。
281Now_loading...774KB:2009/05/18(月) 00:13:58 ID:YgS3ubHv
>>278
画面更新のためにスクリプトが停止することはなく、
描画処理とスクリプトの実行が同時に行われることもないとか。
詳説ActionScript3.0の23章に画面更新について書かれてます。
282Now_loading...774KB:2009/05/18(月) 05:11:29 ID:pEvZGndt
>>279
無名関数ってのは
function(hoge:Hoge){ };
みたいな名前の無い関数。
名前が無いから
var func:Function = function(){ };
みたいな感じで変数に入れて保持する。

これだけだと存在意義があまり無い感じがするけど
たとえばこんなふうに配列にいれたりするような使い方もできる
var funcList:Array = [
function(){ },
function(){ },
function(){ }
];
こういう風に関数を配列にいれて順番に実行するようにしたりすれば、
ゲームの敵キャラのAIのアルゴリズムを組み替えたり、
独自のスクリプトみたいなものを実装したいときにも使える。

無名関数はAS3では関数クロージャっていってthisの扱いが
変わったりするから、ちょっと注意が必要なんだけど、この
違いを活かす使い方もできる。けどそれはまた別の話
283Now_loading...774KB:2009/05/18(月) 06:07:30 ID:v8SOwQvz
AS2.0 CS3です。

総計200程になる自作ライブラリがあります。
プロジェクトAからだと全く問題無くコンパイルできますが、
プロジェクトBだと特定のクラスが正常に継承されずに出力されます。

Object/ClassA/ClassB/ClassC/ClassD
といった階層で継承されているのに対して
Object/ClassC/ClassD
の状態でインスタンスが生成されてしまいます。
ちなみにデコンパイラでClassCを調べると、しっかり「extends ClassB」されているのを確認しました。

このような現象はどのようにして発生するのでしょうか?
またどのように修正すれば良いのでしょうか?
284Now_loading...774KB:2009/05/18(月) 07:15:10 ID:xjSXnrLT
JavaScriptはクラスが存在しないから
オブジェクトと関数を関連づけたり、
名前空間を分離するのに、
ライブラリみると大量に無名関数使われたりするけど
AS3だとどうなんだろうね。
凄い便利な使い方って思いつかない。
285Now_loading...774KB:2009/05/18(月) 07:28:52 ID:xjSXnrLT
Tweener.addTween(spr, { x:tgtx, y:tgty, alpha:0, time:1, transition:"linear", onComplete:function():void {stage.removeChild(this)}} );

こういう短いコールバックだと、
いちいち名前考えたりするの面倒だから、無名関数使う人結構いるかもしれない。
でも、それも好みの問題だし、無理して使う必要もない気もする。
286Now_loading...774KB:2009/05/18(月) 12:09:57 ID:PXEK/QLN
FLASH CS3、AS3.0です
System.totalMemoryの値をENTER_FRAMEで表示させてチェックしてみてるのですが、
通常のswfの場合の値・平均値はどれくらいがベストなのでしょうか?
287270:2009/05/18(月) 12:49:30 ID:8w/6+7Ob
>>270
自己解決しました。

foo_loader.swf  ロード&進捗表示
foo.swf      メインコンテンツ

の様に2つのswfファイルに分けて、foo_loader.swfの中でfoo.swfをロードする様にしたら、
[F5]キーの更新できちんと再表示される様になりました。

>>271
アドバイス有り難うです。
288274:2009/05/18(月) 12:50:30 ID:BRlLkUYa
280-285さんありがとう。無名関数の利点あるんですね。
たくさんASを書いている人にとってはすごく便利なものなのかと。

ところで、以下は、音を読み込んで再生させるスクリプトですが、
channel = snd.play();
っていうのも無名関数の一種ですか?


::::::::
var snd:Sound = new Sound();
snd.load(new URLRequest("song.mp3"));
var channel:SoundChannel = new SoundChannel();

channel = snd.play();
::::::::
289Now_loading...774KB:2009/05/18(月) 16:28:57 ID:7qCXeo82
>>288
var sqrt:Number = Math.sqrt(5);
これとほとんど同じことなんですが、これは無名関数に見えますか?

まず snd.play() は明らかにplayと名前のついた関数の呼び出しなので
無名関数ではありません。

channel = snd.play();
は関数を代入してるわけではなくて、play()の返値をchannelに代入してる
だけですよ。play()が返値にSoundChannelのインスタンスを返すから上のとは
ちょっと違うように見えるけど基本的には同じことです。

ちなみに
var channel:SoundChannel = new SoundChannel();
channel = snd.play();
とすると、せっかくnewしたSoundChannelを使うことなく置き換えられて無駄なので
var channel:SoundChannel = snd.play();
と書いていいです。

見てるとなんか用語に振り回されてるような感じがするから、
もうちょっとゆっくり基本から押さえていったほうが結局は近道かもよ。
290274:2009/05/18(月) 20:43:13 ID:BRlLkUYa
ありがとうございます。
単なるメソッドの戻り値ですか。

>見てるとなんか用語に振り回されてるような感じがするから、
>もうちょっとゆっくり基本から押さえていったほうが結局は近道かもよ。

ですかあ。ありがとうございます。基本に戻って勉強します。
291Now_loading...774KB:2009/05/18(月) 22:51:51 ID:RpAX51Oi
AS1.0でシューティングを作っているのですが弾の連射の当たり判定の方法で困ってます。
10発まで連射できるとしてMC「tama」を複製して飛ばすまではいいのですが敵との当たり判定の方法が分かりません。敵の種類が多いので・・・・。
よければ多数の敵にも対応できる方法を教えてもらえないでしょうか。よろしくお願いします。
292Now_loading...774KB:2009/05/19(火) 00:13:05 ID:DXdS89Ya
>291
AS1.0ってFLASHのバージョンはなんですか?
293Now_loading...774KB:2009/05/19(火) 00:38:09 ID:PT4ExDZY
>>291
弾を配列1に入れる、敵を配列2に入れる。
配列1のループ中に配列2の敵と当たり判定。
単純に考えるとこうかな。
294Now_loading...774KB:2009/05/19(火) 06:47:47 ID:lK02i4YT
>>292
SWF6です。

>>293
もうちょっと詳しく教えていただいても良いでしょうか。
295Now_loading...774KB:2009/05/19(火) 11:36:08 ID:DdrZ4Hxe
>>294
どうせそのまま使えないからちょっと抽象化して書くよ。

//弾発射時
tamaList.push(弾MC);

//敵出現時
tekiList.push(敵MC);

//当たり判定
for(i=0; i<tamaList.length; i++){
for(j=0; j<tamaList.length; j++){
if(当たり判定){
//当たった時の処理
}
}
}

みたいな。当たった時の処理で弾/敵が消えるとき、
または画面外に出た時はtamaListとtekiListから
MCを消すのを忘れずに。
296Now_loading...774KB:2009/05/19(火) 11:39:02 ID:DdrZ4Hxe
ごめん
for(i=0; i<tamaList.length; i++){
for(j=0; j<tekiList.length; j++){
だった。

あと当たり判定をするのはtamaList[i]とtekiList[j]ね。
hitTestでやるか座標でやるかは作り方によるので
自分のやり方で考えてみて。
297Now_loading...774KB:2009/05/19(火) 14:09:19 ID:rqt+KB39
球と球の判定
長方形と長方形の判定
ビットマップのカラーを見て判定(高負荷)

球同士か回転のない長方形同士が負荷も少なく、楽で良いかな。
298Now_loading...774KB:2009/05/19(火) 14:20:21 ID:JJnZE2pS
点と長方形だと速い。
299Now_loading...774KB:2009/05/19(火) 14:43:07 ID:lK02i4YT
>>295-298
ありがとうございます。大変勉強になりました。
当たり判定なのですがhitTestでは数が増えると重いらしいので座標で行っています。一番軽い方法はやっぱり座標判定なのでしょうか。
flashでやるには向いてないと分かってても弾幕シューティングにいつか挑戦してみたいと思いまして。
300Now_loading...774KB:2009/05/19(火) 20:58:58 ID:DXdS89Ya
LiveMotionの質問はここでいいですか?
301Now_loading...774KB:2009/05/19(火) 23:11:11 ID:HnjdR6H2
キーボードイベントの取得について質問です。
環境はflash9 as3。
ESCキー押下を拾いたいのですが拾えません。

stage.addEventListenr(KeyboardEvent.KEY_UP, handler);

textField.addEventListenr(KeyboardEvent.KEY_UP, handler);

function handler(event:KeyboardEvent):void {
trace("KEY_UP", event);
}

テキストフィールド上では拾えますが、
stage上では拾えません(イベントが発生しない)。
ESCキー押下を拾う方法はありませんか?
302Now_loading...774KB:2009/05/20(水) 01:05:10 ID:uvupdTtp
>>301
どういう状況で使うか分からんが
stage.addEventListener (KeyboardEvent.KEY_DOWN, key_ope);
stage.addEventListener (KeyboardEvent.KEY_UP, key_ope);
function key_ope(keyEvt) {
trace(keyEvt.type);
trace(" keyCode:" + keyEvt.keyCode);
}
ならEscのキーコードをを拾えた。
ただし、プレビューでは一旦ステージをクリックしないとだめだが。
303Now_loading...774KB:2009/05/20(水) 02:01:22 ID:41Vq7YNU
>>302
あああああ、マジすんませんorz
とりあえず手元にあるIE7とchromeで確認したところ、普通にESCキー取れました。
ずっとぷにるで動作確認してました。
ぷにるで動かなくてもいいので、これで大丈夫です。
ご迷惑おかけしました。

> どういう状況で使うか分からんが
stage上に表示したポップアップウィンドウ風のMCを、
ESCキーを押すと閉じるという目的でした。
304Now_loading...774KB:2009/05/21(木) 02:26:53 ID:L8LOfOjU
ストロボのガイドナンバー計算機でもつくろうと思ったんだが、
http://ja.wikipedia.org/wiki/ガイドナンバー_(カメラ)

GN=gn F値=f 距離=d ISO感度=isoでやってみて、次のスクリプト
gn=f*d/Math.sqrt(iso/100);
でガイドナンバーは計算デキタ
しかしiso感度を得ようと思うと式を作れない。
誰か助けてください
305Now_loading...774KB:2009/05/21(木) 07:47:19 ID:zfTJCN8F
AS3使いたいけど、8だよ
cs4は色々と微妙みたいだし、cs3は売ってないし(アカデミね)
どうしよう(´・ω・`)
ちなみに大学4年です
CS4買っておくべき?
306Now_loading...774KB:2009/05/21(木) 07:54:55 ID:alzL9YDa
AS3をやりたいだけならフリーの開発環境で充分。
何かを作りたいのであればAS2で充分。
仕事でFLASHしたいなら、CS4を買う。
307Now_loading...774KB:2009/05/21(木) 08:07:04 ID:/GjsApoO
AS3だけで考えればCS4から実装されたvectorクラスが便利すぎるのでお勧めです。
8持ってるんだったらアップグレード版が26250円で買えますし。
308Now_loading...774KB:2009/05/21(木) 08:36:54 ID:pJKs9V2i
>>305
CS3 → CS4で私が気に入っている点。
・H.264エンコード対応
  Flashで動画制作する人には便利。
  フリーソフトを集めれば同等の事ができるけれど、複数のソフトを組み合わせたり泥臭い。
・On2 VP6 2パスエンコード対応
  今までは1パスだった。
  フリーソフトでできるけれど、H.264以上に泥臭い手順が待っている。
・モーショントゥイーン
  CS3とCS4では操作がかなり違う。
  CS4の方が慣れると便利だ。
・擬似3D
  CS4は平面を擬似的に3D表示可能で、奥行きのある回転などができる。

309Now_loading...774KB:2009/05/21(木) 11:55:11 ID:rlXQa5cq
AS2です。XMLオブジェクトにファイルから読むのにLoadを使ってますが、
Windowsのクリップボードからテキストフィールドに書き込まれたデータは
どう格納すればいいでしょうか。
310Now_loading...774KB:2009/05/21(木) 12:52:32 ID:bzZhyZby
>>309
var xml:XML = new XML(textField.text);
ってことかな?
311Now_loading...774KB:2009/05/21(木) 14:35:36 ID:l9LgGD2y
AS1です。

SWFをVer8で書き出すと
on (release) {
getURL("hoge.html");
}
が利かないのですが仕様が変わったのでしょうか?
Ver8以下でパブリッシュすると機能します。
312305:2009/05/21(木) 14:52:54 ID:zfTJCN8F
皆さんアドバイスありがとうございます!

体験版使ってみて、重さが気にならないようなら購入しようかな
でもなんかFLASH CS4板とかみると、きつそうだ…
313311:2009/05/21(木) 14:57:06 ID:l9LgGD2y
自己レスです。
サーバーにアップしたらgetURLが機能しました。
ローカルだとだめなんですね。なぜでしょう?
314311:2009/05/21(木) 15:13:13 ID:l9LgGD2y
さらに自己レスです。
グローバルセキュリティ設定でローカルを信頼させないといけないんですね。
面倒になったもんだ。
315Now_loading...774KB:2009/05/22(金) 10:04:02 ID:3c+kV373
//MyClass
public class MyClass extends Sprite {
public var str:String = "DEFAULT";
public function MyClass() {
addEventListener( MouseEvent.CLICK, clickHandler );
}
private function clickHandler( event:MouseEvent ):void {
trace(str);
}
//AButton
public class AButton extends MyClass {
public function AButton() {
str = "AButton";
}

extendsの事なのですが、
ライブラリのムービークリップとリンゲージしている、ボタン郡の処理をMyClassで指定したいのですが
押した時のボタン判別に、そのボタン名の文字列を渡いたい場合どうすれば良いのでしょうか。
上のようにしても、出力されるstrの結果は"DEFAULT"のまま表示されてしまいます。
FlashCS3、Actionscript3.0です。
316Now_loading...774KB:2009/05/22(金) 10:14:21 ID:fIzIJ2D7
WindowsXP + Flash CS4 です。

「_等幅」や「_明朝」のデバイスフォントを、ダイナミックテキストエリアで
表示させたいのですが、swf(FlashPlayer10)では表示できるのに
AIR1.5で出力すると「_ゴシック」と同じフォントになってしまいます。
ただし、「MS ゴシック」など直接フォント名を指定したときはうまくいきます。

AIRで、「_等幅」や「_明朝」を表示するにはどうすればいいでしょうか?
317Now_loading...774KB:2009/05/22(金) 11:55:37 ID:1+xtrVup
AS3 + Player9です。

タイムラインに配置したmcに、プロパティからクラスMc/基本クラスHOGEを設定しました。
HOGEクラスのhogehoge()をオーバーライドしたいのですが、mcのタイムラインに
override public function hogehoge():void{

}
と書くとパブリック属性はpackageでって怒られるし、
publicを外すとオーバーライドできませんと怒られます。

そもそもタイムラインでオーバーライドは出来ないんでしょうか?
よろしくお願いします。
318Now_loading...774KB:2009/05/22(金) 12:12:18 ID:OCOD+kMc
外部のJavaScriptなどから、SWFのgetVariableメソッドを呼び出すことで、
ActionScript内の変数やオブジェクトのプロパティを取得しているのですが、
最近、うまく取得できないSWFにでくわしました。。
調べてみると、このSWFは、Flash10(ActionScript3.0?)で作成されているようです。

例)TextFieldのオブジェクトに対してgetVariableを読んだ場合
getVariable("textFieldObj")    → "_level0.textFieldObj"
getVariable("textFieldObj.text") → エラー

以前なら、textの場合もエラーとならずに表示内容を取得できていたのですが・・

Flash10(ActionScript3?)で作成されたSWFからは、
以前のようにgetVariableで値を取得できないということなんでしょうか?
319Now_loading...774KB:2009/05/22(金) 13:42:20 ID:Hn3ZXBBm
AS2とAS3って連携とか出来たっけ
320Now_loading...774KB:2009/05/22(金) 15:18:15 ID:7hVJL9jq
一方通行だったと思う。
321Now_loading...774KB:2009/05/22(金) 17:29:47 ID:OR4eTGRI
>>315
よくわからんけど、どのボタンをおしたかを判断したいなら、インスタンス名で判断すれば良いんじゃないかな?
var a:AButton = new AButton()
a.name = "buttonA"
trace(a.name == "buttonA")
みたいにして

どの種類のボタンを押したか(どのクラスのインスタンスか)を判定したいなら、is演算子で良いんじゃない?
trace(a is AButton)
みたいに
322Now_loading...774KB:2009/05/22(金) 20:42:00 ID:aOcMLVfD
>>317
無理。
もう一回AS自体勉強しろ。
323Now_loading...774KB:2009/05/23(土) 05:47:44 ID:fABNyi5n
このスレでいいのか不安ですが
AS3(Flex)でRPGっぽいゲーム作ってます。
メニュー画面とか会話ウインドウ作成するのに参考になる
サンプルソースってないでしょうか?
324Now_loading...774KB:2009/05/23(土) 18:34:01 ID:GN2aYU+U
ステージ上にシンボルを配置してインスタンス名をつけるとき、
まったく同じ名前をつけることが可能ですが、
同じ名前をつける利点てありますか?
getChildByNameなどを使っても1つにしかアクセスできないし、
まとめて操作できるわけでもないし。
325Now_loading...774KB:2009/05/23(土) 23:11:48 ID:pQ9OMDBL
mcApoint
mcBpoint
mcCpoint
という関数があるようなとき、
昔つくったAS2では

function(McName){
this[MCname+"point"].〜〜〜
}

という感じで this[] を使って名前を分解(?)していたんですが、
AS3でこの代わりになるようなものはありますか?
326Now_loading...774KB:2009/05/23(土) 23:58:58 ID:vJGSJBGG
>>325
thisが指す場所があってればそのまま使える。
呼び出す場所によってthisが合わなくなるなら、
var thisMc:MovieClip = this;
function(McName){
thisMc[MCname+"point"].〜〜〜
}
とでもしてthisの位置を確定しては?

ところでmcApointってほんとに関数?
327Now_loading...774KB:2009/05/23(土) 23:59:45 ID:vJGSJBGG
あ、型とかもちゃんと書いてくれよな
function(McName:String):void{
328325:2009/05/24(日) 00:20:40 ID:c97hhu/X
>>326-327
ありがとうございます!出来ました。

_root使えなくなった代わりにMCつくるのと似たような感じですね。
その辺の仕組みを理解してないので勉強しときます。

>ところでmcApointってほんとに関数?
関数じゃなくて変数ですね、失礼しました。
329Now_loading...774KB:2009/05/24(日) 11:56:08 ID:kX2YSuzZ
サンプルになるソースは分からないけど
セガの研修をまとめたとかいうゲームプログラミングの本が評判いいみたいよ。
ソースはC++だと思うけど。
330Now_loading...774KB:2009/05/24(日) 15:51:16 ID:VOdDNoLv
AS3です。

var ldr:Loader = new Loader();
ldr.load(new URLRequest("toLoad.swf"));
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);


本とかで上のスクリプトとぶつかりました。
swfファイルをロードする内容なんです。

contentLoaderInfoは、LoaderInfoクラスのプロパティなんですが、
ldrは、Loaderクラスです。

LoaderInfoクラスは、Loaderクラスの継承を受けていないはずなんですが、
継承受けていないクラスのオブジェクトに対して、プロパティを設定すること
あるのでしょうか?
331Now_loading...774KB:2009/05/24(日) 16:16:39 ID:kX2YSuzZ
委譲っていって、
あるオブジェクトが他のオブジェクトのインスタンスをプロパティに持っていて
自分で処理する代わりにプロパティに持っているオプジェクトに処理してもらうって
やり方もあるよ。spriteのgraphicsなんかもそうだよ。
332Now_loading...774KB:2009/05/24(日) 16:47:26 ID:VOdDNoLv
>331さん
ありがとうございました。勉強になりました。

あの、ところでこれって基本的なASの知識でしょうか?
333Now_loading...774KB:2009/05/24(日) 17:02:35 ID:kX2YSuzZ
さぁ、どうだろう。
AS3のプログラマって、Javaとかから来たプログラミング経験豊富な人と
デザイナーで初めて触った言語がAS3とjavaScriptぐらいって人と2分化してる気がする。
334Now_loading...774KB:2009/05/24(日) 17:28:27 ID:zG9Qv3fZ
その間の人ってなによ?
335278:2009/05/24(日) 17:47:19 ID:kIMu7nv9
>>281
ものすごい亀ですが、ありがとうございました!
詳説ActionScript3.0 ちょっと当たってみます!!
336Now_loading...774KB:2009/05/24(日) 17:52:25 ID:VOdDNoLv
プログラマー上がりの人には、かなわないですよね。
AS3になって実感してます。
337Now_loading...774KB:2009/05/24(日) 23:25:45 ID:mBr82atc
すみませんが教えてください。
AS1なのですが、MC自体の横幅縦幅のサイズを知る方法はあるでしょうか。
例えば50*50のMCなら50という値を返して欲しいんです。
_xscaleはパーセンテージだから100としか返さないので困っています。お願いします。
338Now_loading...774KB:2009/05/24(日) 23:39:06 ID:2RHuhQP3
_widthと_height。
339Now_loading...774KB:2009/05/24(日) 23:40:47 ID:VOdDNoLv
MC.width
340Now_loading...774KB:2009/05/24(日) 23:45:38 ID:VOdDNoLv
あ、すまね。AS1だったね。
341Now_loading...774KB:2009/05/25(月) 01:05:59 ID:dLR0C/1Z
_widthでtraceしてみたのですが何故か0が返ってきました。AS1ではできないんでしょうか。
342Now_loading...774KB:2009/05/25(月) 01:23:46 ID:UKhMJ5yX
MXもAS1だよね。
だったら、_widthと_heightでOKなはず。

ただ、FLASH5もAS1だけど、使えるコードが少なかったような、、。

とうことでFALSHのバージョンは?
343Now_loading...774KB:2009/05/25(月) 01:35:11 ID:UKhMJ5yX
すまん。調べたらFLASH5でも _width と _height は使える。
なので、シンタックスのミスかも。
ソースを公開すれば誰かが助けてくれるはず。
344Now_loading...774KB:2009/05/25(月) 01:41:33 ID:Szd7KuMP
読み込み終わってないMCのサイズを測ろうとしてるとかな。
345Now_loading...774KB:2009/05/25(月) 01:43:09 ID:zPQ+YCdn
とりあえず落ち着きましょう。

0なら恐らくMovieClipは何も描画していない空の状態。
線一本でも描けばたぶん変化するよ。
346Now_loading...774KB:2009/05/25(月) 02:03:17 ID:UKhMJ5yX
ずっとActionScriptばかり触ってたら、CSS忘れてしまったよ。がくし。
347Now_loading...774KB:2009/05/25(月) 05:05:51 ID:keTF7ivx
環境はFlashCS3 ActionScript3.0です。
プリローダーについて質問させてください。

読み込みが完了していても、なめらかに100パーセントまで少しずつ動作する
プリローダーはどうやったら作れますか?
横に伸びるローディングバーと、進捗を示すパーセンテージを表示したいです。

よろしくお願いします。
348Now_loading...774KB:2009/05/25(月) 06:07:25 ID:UKhMJ5yX
ロードの完了をプリローダーの80%に設定する。
ロードが始まったら、ローダーの時間を測る。
ローダー時間×0.2で残り20%を伸ばす。

パーセント表示も同じ。
349Now_loading...774KB:2009/05/25(月) 08:55:59 ID:Nj8/z3My
なんと、そんな方法あったのか。
347じゃないけど、勉強になった。
350Now_loading...774KB:2009/05/25(月) 10:35:45 ID:7wqzKd5B
>>348
私も勉強になった。
こうしないと、一瞬だけ進捗表示が行われ画面がバグっている様に見えるんだよね。
351Now_loading...774KB:2009/05/25(月) 17:29:59 ID:dLR0C/1Z
341です。
>>342-345
attachMovieClipで複製したMCの1フレーム目にtrace(_width)と書いてたんですが、>>345さんの言う通り何も描画してなかったのが原因みたいでした。
お陰様で今ではきちんと取得できてます。皆様本当にありがとうございました。
352Now_loading...774KB:2009/05/25(月) 22:43:23 ID:Df9u99dd
FLASH(AS2)で複数の音素材を同時に再生したいのですが、


 s1=new Sound();
 s1.attachSound("sound1");
 s2=new Sound();
 s2.attachSound("sound2");
 s1.start();
 s2.start();

とすると0.2秒くらいずれます。
ぴったり同時で再生することはできないのでしょうか?
353Now_loading...774KB:2009/05/26(火) 00:06:28 ID:8XAddzqb
これでどうだろう。テストしてないからわからんけど。

s1=new Sound();
s1.attachSound("sound1");
s2=new Sound();
s2.attachSound("sound2");
function playsnd() {
s1.start();
s2.start();
}
this.playsnd();
354Now_loading...774KB:2009/05/26(火) 00:14:58 ID:WcnMoIaf
>>353
ありがとうございます、早速試してみたのですが、私の環境ですと
・初回はずれる
・2回目はずれないこともある
のような感じでした。

同時再生ってこんなに大変なんですねー。どうしよう。
355Now_loading...774KB:2009/05/26(火) 00:38:26 ID:rjJskObz
ハードウェアの依存かもしれないけど、経験上、
サウンドの再生/停止/設定の変更は最大で(約)0.3秒程遅延する事があるよ。
この場合はsound1と2を波形編集でソフトで合成した3を作って再生とかどうかな?


善意は否定しないけど、明らかに間違った知識を吹聴する人が最近いるね・・・
356Now_loading...774KB:2009/05/26(火) 00:57:13 ID:WcnMoIaf
>>355
同時にならしたい音を最初から合成してしまう、というのは最終手段だと考えています。
それだとファイル数が1000を超えてしまいそうなのです。

ずっと調べてたんですけど、FLASHは音の再生タイミングをコントロールできないみたいですね。
かといってFLASH以外でウェブで使えるものでコントロールできるものがあるかというと・・・
357Now_loading...774KB:2009/05/26(火) 01:15:22 ID:978UHK0K
Player10でAS3なら動的に合成すれば両方完全にそろえれると思うけど、
いずれにしろこれだけのことしたいだけなのに面倒ってのはあるねぇ。
358Now_loading...774KB:2009/05/26(火) 01:31:17 ID:WcnMoIaf
>>357
ありがとうございます!
しらべてみたら、どうやらできそうです

こんなページがありました、AS3勉強することにします
ttp://www.adobe.com/jp/devnet/flash/articles/flp10_sound.html
359Now_loading...774KB:2009/05/26(火) 01:35:59 ID:H27TRtYb
>>348の仕様でローダーを1フレームに設置して、
読み込んだら2フレームに移動ってのをどなたか作ってくれませんか。
コードが見たい・・・。
360Now_loading...774KB:2009/05/26(火) 02:13:32 ID:zfyatJqi
as3.0でDictonaryの要素数を知るメソッドがないみたいですが、
知ることはできないのでしょうか?
361Now_loading...774KB:2009/05/26(火) 10:05:07 ID:K+S20HpJ
FlashLite1.1でモバイルサイトを作っております。ボタンを使ってスクロールさせているのですが、そのMCの中にある写真をMCの外にある(スクロールの為に使っているボタン)でrolloverで画像を切り替えたいのですがスクリプトがわかりません。
こんな質問で本当に申し訳ないのですがどうか諸先輩方ご教授頂ければ幸いです。

コチラを参考にして作りました。

ttp://www.plusmb.jp/2008/11/28/1368.html

よろしくお願いします。
362Now_loading...774KB:2009/05/26(火) 12:52:57 ID:uy3H3H0v
>>360
無いねー。for eachで走査するのがてっとりばやいかな
それか自前で拡張するか。ちょいと行儀悪いけどこんな感じ
クラス作ってもいいんじゃない?

//getCountメソッドを追加
Dictionary.prototype.getCount = function(){
var c:int=0;
for each(var o:* in this)if(o != this.getCount)c++;
return c;
}
//Dictionaryのインスタンスに2要素を追加
var dic:Dictionary = new Dictionary()
dic["a"] = 0;
dic["b"] = 1;
//メンバ数を取得
trace(dic.getCount())
363Now_loading...774KB:2009/05/26(火) 15:50:59 ID:+Hc/B5u3
>>362
なるほど、結構不便ですね。
要素はたいした数じゃないのでとりあえずfor eachでカウントします。
ありがとうございました。
364Now_loading...774KB:2009/05/26(火) 17:56:46 ID:gNrLaWeO
http://itpro.nikkeibp.co.jp/article/COLUMN/20070316/265422/tinyPaint.html
AS2.0で作られているようなのですが
このようなビットマップベースのアンチエイリアスの掛かっていない線を引くにはどうすればいいでしょうか?
ご教授宜しくお願いします
365Now_loading...774KB:2009/05/26(火) 18:42:21 ID:T3FcsRQz
>>364
BitmapDataクラスを使ってビットマップで描画すればよい
366Now_loading...774KB:2009/05/26(火) 18:51:54 ID:9npys2/V
すみません
Flash CS3 + AS2です。

AS3.0で mouseChildren で、MCの子供のマウス制御を無効に出来たかと思います。
急遽AS2での開発が必要で同じ事を再現したいのですが、可能でしょうか?
367Now_loading...774KB:2009/05/26(火) 19:51:06 ID:RgwWMdtJ
>>366
不可能
AS3にすべし
368358:2009/05/26(火) 21:23:54 ID:WcnMoIaf
action scriptのサウンド関連のリファレンスとかってネットにありますか?
書籍はただ再生する程度のレベルの話しか書かれてませんでした・・・
369Now_loading...774KB:2009/05/26(火) 21:41:46 ID:gNrLaWeO
>>365
それはそうなのですが・・・
一応始点と終点を点で補完する形でビットマップの線を再現できました
これ以外に方法があるでしょうか?教えていただければ嬉しいです。
370Now_loading...774KB:2009/05/26(火) 22:15:35 ID:9npys2/V
>>367
ありがとうございます

なるほど
今回だけはどうしてもAS2でなきゃいけないので
ほかに代替え処理が思いつかないので、子供を全部配列にい入れて処理するようにしました
371Now_loading...774KB:2009/05/26(火) 23:12:27 ID:9dVgDQhm
FlashCS3 AS3.0
プログラム勉強中で、参考書にあったサンプルの意味がわからんので教えてほしいです。

「配列の指定した位置の値を消す関数」
------------------------------------------------------------
function deleteAt(tmplist:Array, pos:uint):Array {
var newlist:Array = new Array();
if (pos==0) {
newlist = tmplist.slice(1);
} else {
var list1:Array = tmplist.slice(0, pos-1);
var list2:Array = tmplist.slice(pos+1);
newlist = newlist.concat(list1, list2);
}
return newlist;
}

var vList:Array = new Array("a","b","c","d","e");
vList = deleteAt(vList, 0);
trace(vList);
vList = deleteAt(vList, 2);
trace(vList);
------------------------------------------------------------
ここでの
var list1:Array = tmplist.slice(0, pos-1);
の、「slice(0,pos-1)」ってのはどういう処理になるの?
配列を複製するsliceにpos-1っていうのが意味がよくわからないんだ。
372Now_loading...774KB:2009/05/27(水) 00:59:33 ID:7DObHfVj
flash8 AS2です。

イライラ棒のようなものを作ろうと考えています。

start_mc2.onRelease = function(){
xMus = _xmouse;
}

cose_mc2.onMouseMove = function(){
if(xMus<_xmouse){
this._x -= (_xmouse-xMus);
xMus = _xmouse;
}
}
スタートボタン(start_mc2)を押してマウスがX方向に移動するたびにコース(cose_mc2)の先が見えるような記述を書いたのですが、
フレームの端のほうまでマウスが動いてしまった場合にコースの先が見えずに詰んでしまいます。
そこでマウスを常に中央に表示したままマウスを動かしコースを表示させたいのですが、どのように記述すればよいでしょうか?
373Now_loading...774KB:2009/05/27(水) 01:02:30 ID:wg90yWuP
>>371
ヘルプを見てみよう:

> Array.slice( startIndex, endIndex):Array
> 元の配列から一連のエレメントを取り出して、新しい配列を返します。
> 元の配列は変更されません。返される配列には、startIndex エレメントから
> endIndex の前のエレメントまでのすべてのエレメントが含まれます。

たとえばこういう動作をしてみよう。

var vList:Array = new Array("a","b","c","d","e");
var test = vList.slice(0, 2-1);//pos-1のこと。
trace(test)

出力結果は「a」。testは0番目から1番目の手前(=0番目)までの要素の配列になったからだ。
あとは分かると思う。
374Now_loading...774KB:2009/05/27(水) 01:35:54 ID:dV/0U6KP
削除したい場所までを複製

削除した場所からあとを複製

それらを連結

してるだけ
375Now_loading...774KB:2009/05/27(水) 07:55:53 ID:eVyHDgJr
仕組みはともかく、なんで要素削除するのにsplice使わないで自作関数作ってんだろうな?
元の配列変えてもいいならそっちのが楽だろうに
376Now_loading...774KB:2009/05/27(水) 09:21:52 ID:RrI6FSim
質問です。
BlazeDSって、サーバーサイドJavaの処理を、Flashからリモート呼び出しできますよね。
このときAMFっていうバイナリ通信プロトコルを使うっていう考えは合ってますか?

JavaScriptから、BalzeDSで用意したサーバーサイド処理を呼び出したいのですが、
HTTP Adapterってのを使えばできるんでしょうか?

377Now_loading...774KB:2009/05/28(木) 00:00:26 ID:wg90yWuP
>>375
>>371で「参考書にあったサンプルの意味がわからんので教えてほしいです。」って
言ってたから、その参考書がArrayオブジェクトのメソッドの理解を深めるために
あえてやってるんじゃね?
378Now_loading...774KB:2009/05/29(金) 18:56:59 ID:lZu7NZsY
設置している場所が_root.testのシンボルを_root.test2.testと言うようにtest2の中へ移動するにはどうすればいいでしょうか?
379Now_loading...774KB:2009/05/29(金) 19:42:35 ID:7XGu3Za6
_rootってことはAS2.0以前かな?
それだと移動は無理
同じシンボルからインスタンス作って、同じパラメータ設定するしかない
380Now_loading...774KB:2009/05/29(金) 20:09:09 ID:fj71XBKA
WinXPでFlashCS3(AS3.0)です。

カンマ区切りの文字列tmpStr1を var arr0:Array = new Array(); 
で宣言したarr0に格納するため、arr0 = tmpStr1.split(",");
と書きました。

ところが、検証用の出力trace (arr0[1]); では何も出ません
(エラーも出ません)

何が問題なのでしょう?
381Now_loading...774KB:2009/05/29(金) 20:15:13 ID:rLu6tYAB
CS3でAS3を弄り始めたんですがさっぱりうまくいきません('A`)
リンケージされたmc1、mc2、mc3を用意して、
どれか一つをAS上からランダムに表示させたいと考えています。

が、下記スクリプトを実行すると
『コンストラクタ以外にインスタンス化が試行されました。』と言われてしまいますorz

var i = Math.floor(Math.random()*3+1);
var mcshow = new ["mc"+i]();
stage.addChild(mcshow);

どこが間違ってるのでしょうか…
382Now_loading...774KB:2009/05/29(金) 20:29:14 ID:zB/7nRBU
>>381
var mcshow = new ["mc"+i]();
こんな書き方初めて見た。この記述の由来は何?
383381:2009/05/29(金) 20:34:11 ID:rLu6tYAB
レスありがとうございます。
やっぱりそこがおかしいんですね…由来は特にありません、でっちあげです…。

任意の変数をインスタンスの指定に利用するには、
配列アクセス演算子は使えないのでしょうか。
384Now_loading...774KB:2009/05/29(金) 22:11:53 ID:lZu7NZsY
>>379
やっぱり無理ですよね
ありがとうございました
385Now_loading...774KB:2009/05/30(土) 06:01:55 ID:HtgParva
>>380
エラーでまくりなんだが
386Now_loading...774KB:2009/05/30(土) 11:39:44 ID:19tuxnk5
as3.0・CS3です。
flaのドキュメントクラス上で
var basePage:BasePage = new BasePage();
addChild(basePage);
var page1:Page1 = new Page1()
base.addChild(page1);
var page2:Page2 = new Page2()
base.addChild(page2);
大体このような構造です。

BasePage・Page1・Page2クラスはスプライトを継承しています
この状態でPage1のクラス上からPage2の変数にアクセスが必要になったのですが、どのようにすれば良いのでしょうか
ご助言をどうかお願い致します
387Now_loading...774KB:2009/05/30(土) 13:11:09 ID:FPE18n/6
>>381
getDefinitionByNameを使えばいけるんじゃないかな

それか3つのうちからランダムだったら単純にリストで管理してもいいんじゃない?
こんなで
addChild(new [ClassA, ClassB, ClassC][Math.random()*3>>0]());
388Now_loading...774KB:2009/05/30(土) 21:43:24 ID:iLM0EIm8
質問お願いします。

環境FlashCS3 ActionScript2.0
現在、初めてフラッシュでサイトを制作しているものです。
http://be4you.jp/arthabitat/

ここに製作途中のサイトがあるので、見ていただくとわかりやすいと思うのですが
質問が2つあります。
@サイトを開いて何度か更新しないとメインのswfが表示されません
(サーバーを変えても同じ)一発で表示させる方法を教えてください

A何度か更新を押してメインのswfが表示されても
ローディングバーと数字部分が伸びないので解決方法をお願いします。
(ローディングバーは最初から制作された素材で配置するだけで使用可能と書いてありました)
389Now_loading...774KB:2009/05/30(土) 23:41:13 ID:tTYG5Xmi
>>388
早速、お邪魔させて頂いたが……
まったくFlashが表示されない。
ロゴが表示されるだけで動きもない。
これだけだと、どういう動作を期待しているのか分からん。
IE8、スレイプニル2.8.5、どちらでも同じだ。
5回更新したが、変化無し。

ローカル環境で表示されたの?
swfは2つで、片方がもう片方をロードするの?
URLの指定は絶対アドレス、それとも相対?

分からない事が多すぎて答えようがない。
390Now_loading...774KB:2009/05/31(日) 10:15:03 ID:clCTvgMK
>>388
top2.swfは直接呼べば表示される。
jsのどこかにミスがあるのか、
ひょっとして単にファイルが重いせいかな?
とりあえずjsを使わずに表示させて見れば?
具体的には
<script type="text/javascript">
AC_FL_RunContent( ー略ー ); //end AC code
</script><noscript>

</noscript>を削除

Aの「ローディングバーと数字部分」
確認出来なかった。
借り物のパーツならもう一度使い方を確認してみれば。
とりあえずソース出すなりしてもらわないとわからないかも
391Now_loading...774KB:2009/05/31(日) 17:55:22 ID:qYQQhxTb
AS3.0を勉強してます。

canvas.graphics.drawRect(0,0,100,100)

上のコードが
オブジェクト.+プロパティ.+メソッド
の順にならんでいるのが、なんだか理解できません。
こういうものなのでしょうか?
それとも特別なんでしょうか?
392Now_loading...774KB:2009/05/31(日) 19:35:18 ID:BXqsOaVA
if (useAutoGrid)
{
spacer++;
if (spacer == columns)
{
spacer = 0;
contentYpos += loader.content.height + verticalPadding;
contentXpos = -loader.content.width - horizontalPadding;
}
// increment content x
contentXpos += loader.content.width + horizontalPadding;
}

http://www.blog.noponies.com/archives/61

ここで配布されてるAS3でパンやズームを実現するLayOutクラスで
どうして、オートレイアウトで次の行に行く時、前に呼び込んだローダーのコンテンツ分だけ
次のコンテンツの座標をマイナスするのか必死で考えても分からん。
次の行に行くんだからy座標に前のコンテンツの行の高さとパディングを足すのは容易に
理解できたんだけど
393Now_loading...774KB:2009/05/31(日) 19:37:48 ID:BXqsOaVA
>>391
var graphics:Graphics = canvas.graphics;
graphics.drawRect(0,0,100,100);

と呼ぶのと同じ事だからだよ。
わざわざ、これだけのために変数を用意してたら大変じゃない。
394Now_loading...774KB:2009/05/31(日) 20:35:47 ID:qYQQhxTb
393さん。ありがとうございます。

同じような理由で、
graphicsプロパティでなくても
オブジェクト.+プロパティ.+メソッド
と並ぶことはあるのでしょうか?
395Now_loading...774KB:2009/05/31(日) 20:55:43 ID:BXqsOaVA
それだけじゃなく
メソッドチェーンといって
object.callA().callB()
みたいに使えるクラスを書く人もいるよ。
問題はプロパティやメソッドが何を値として返すかと、
ドット演算子が左から右に評価(演算)されるって事で、
左が評価されて値が返ってきたら、その値がオブジェクトの場合は
そのオブジェクトのメソッドを呼べば繋げて書いて問題ないんだよ。
396Now_loading...774KB:2009/05/31(日) 20:59:21 ID:BXqsOaVA
http://www.libspark.org/svn/as3/Chain/samples/ChainTest.as

これなんか、もろにメソッドチェーン使ったクラス。
ここまで長く繋げられるとさすがに読みづらいけど。
397Now_loading...774KB:2009/05/31(日) 21:57:14 ID:qYQQhxTb
ありがとうございます。
左から返ってきたものが、オブジェクトと同等ならば
こういうシンタックスもありなんですね。

こういうのってAS本にはソースには載せてあっても
解説しているのは無いように思います。(あるかもしれないけど。)

すっごく勉強になりました。ありがとうございました。
398Now_loading...774KB:2009/05/31(日) 23:30:38 ID:T+0kZQv7
メインのswfが表示されない・ローディングバーが動かないと相談した
388です。

>389さん
>390さん
ありがとうございます!
一応390さんからご指示いただいた部分を削除してみましたが
自分のパソコンでは表示されない問題は解決できた思います。
皆さんのパソコンでも表示されますでしょうか?
http://be4you.jp/arthabitat/

Aのローディングバーの使用方法はこう書いてありました
設置したいムービーの前にLoading_MCムービークリップを設置します。
1フレーム目にLoading_MCを2フレーム目に読み込ませたいムービーを配置
します。ムービーをスタートすると2フレーム以降のムービーを読み込み
終わるまで、1フレーム目に配置されたLoading_MCが表示されます。

ソースはこんな感じです
http://proxy.f2.ymdb.yahoofs.jp/users/654a526c_m4783de2c/bc/f861/__hr_/42d0.jpg?BC5xTmKBTPCxUajf
http://proxy.f2.ymdb.yahoofs.jp/users/654a526c_m4783de2c/bc/f861/__hr_/ee65.jpg?BC5xTmKBa8n04La_
http://proxy.f2.ymdb.yahoofs.jp/users/654a526c_m4783de2c/bc/f861/__hr_/273a.jpg?BC5xTmKBPA6QEw69
399Now_loading...774KB:2009/06/01(月) 03:50:30 ID:j8E4dgG0
>>398
スレイプニル2.8.5(IE8)、Flash Player 10.0.2で確認した。
一応、メイン画面と思われるメニューは表示された。
でも、%表示が空欄で、ローディングバーは全く伸びない。

AS3に移行したので、AS2は良く覚えていないが。
http://proxy.f2.ymdb.yahoofs.jp/users/654a526c_m4783de2c/bc/f861/__hr_/273a.jpg?BC5xTmKBPA6QEw69
↑これは色々間違っている様に思える。
 ENTER_FRAMEイベントで何も実行しないと思うのだが。

本当にこれの元となったソフトは、ダウンロード状況を表示できたのだろうか。

AS2はかなり忘れているので、あまり当てにならないが、

http://proxy.f2.ymdb.yahoofs.jp/users/654a526c_m4783de2c/bc/f861/__hr_/273a.jpg?BC5xTmKBPA6QEw69
このスクリプトは全て削除。

http://proxy.f2.ymdb.yahoofs.jp/users/654a526c_m4783de2c/bc/f861/__hr_/42d0.jpg?BC5xTmKBTPCxUajf
このBar.p_Bar(略)も削除。
代わりに、Bar._xscale = parcent;を入れる。
テキスト表示も違うな。
動的テキストフィールドのインスタンス名が「parcent_text」なら、
parcent_text.text = Math.(略)だな。
400Now_loading...774KB:2009/06/01(月) 20:54:47 ID:x3zHjDFt
質問!
スクリプトを書くとき、皆さんフローチャートとか書いたりしています?
自分はフローチャートとはいわないけど簡単な道順を書いたりしてます。
最近、長いスクリプトを書くうちに、きちんとフローチャートを
書いたほうがよいように思ったりしてます。

僕はデザイナー出身ですが、ここにはプログラマ出身のかたも
いらっしゃるようなので、どうなんでしょうか?
UMLとかゆくゆくは勉強したほうがいいですか?
401Now_loading...774KB:2009/06/01(月) 23:29:10 ID:vc8X+l0B
398です。

>>399
ご教授いただきありがとうございました。
399さんが教えてくれたようにスクリプトを変更したのですが
動かなかったのですが、別のローディングバーを入れたらちゃんと動きました!
今回初めてフラッシュでサイトを作るのでまたここにお世話になると思いますので
その時はまたよろしくお願いいたします。
402Now_loading...774KB:2009/06/01(月) 23:51:53 ID:BYZtagN0
よく大きな画像を動かすときはモザイク上にしていて、
動きがとまると、画像のモザイクが消えていって表示というエフェクトをみますが、
あれってどうやってるんでしょう?
考え方、アルゴリズムだけご存知の方教えてください。
403Now_loading...774KB:2009/06/02(火) 00:13:41 ID:wsC51KFY
402です
すみません、そもそもなぜモザイクにしたほうが
負荷が減るのでしょう?という質問意図でした。
404Now_loading...774KB:2009/06/02(火) 00:24:56 ID:9j2LMAKv
>>403
チラシとか表示するサイトでは、はじめに表示される低解像度の
イメージを拡大・スクロールし、表示範囲の移動につれて高解像度
イメージを表示したりするけどそういうことかね。
高解像度のイメージの表示にはダウンロード時間も表示の負荷も
かかるからそうやってかいひしてるってことでは。
405Now_loading...774KB:2009/06/02(火) 00:37:36 ID:Tuao8i3q
>>400
そりゃ勉強できればした方がいいに決まっている。
でも、個人で小規模のFlash制作を完結させているなら、必須では無いと思う。
デザイナー出身とのことなので、3Dスキルを磨いた方が周りに喜ばれるかもしれないぞ。

>>402
方法は2つあると思う。
一つはPhotoshopなどで段階的にモザイクを入れた画像を用意し、Flash上で切り替える方法。
もう一つはASで実現する方法だ(BitmapDataクラスなどを使う)。

動画を作るなら、前者の方法が良いだろう。
この方法はモザイク以外にも応用が利き、Photoshopなどをお持ちならば色々な可能性が広がる。
スクリプトのデバッグも不要なので、スケジュールの見積もりもしやすいだろうね。
デメリットはダウンロードサイズが大きくなる事。
On2VP6、H.264動画を作るなら、こちらをオススメしたい。

後者はダウンロードサイズを抑えられる。
デメリットはスクリプトのデバッグ用の時間を取らなければならない事、動作イメージを確認
しながら制作するのが面倒になる事だろうか。
406Now_loading...774KB:2009/06/02(火) 02:21:32 ID:wsC51KFY
>>404
割とシームレスにモザイクから、
徐々に高解像度につながっていくような感じなんですけどね

一枚の大きな画像をバラバラにbitmapが読んでいく感じです。
ということは、bitmapで一度画像をばらして、
それらを分散して読んでるってことですかね
書いててそんな気がしてきたですね
407Now_loading...774KB:2009/06/02(火) 11:08:59 ID:2fWNJEKP
>>406
単純に視覚効果を狙ったもの、ロード時間や負荷低減を狙ったもの、
それから負荷軽減を視覚効果まで高めたものなどがあると思う。
実用性・アート性などどの方向に振ってるかで表現方法もかわってくる。
「このサイトみたいな感じで」とか実例を振ってもらったほうが良いかもね。
408Now_loading...774KB:2009/06/02(火) 13:05:16 ID:kfxYx2O2
>>400
オブジェクト指向的設計においてフローチャートは害悪でしかない
409Now_loading...774KB:2009/06/02(火) 13:43:15 ID:/SBn7Vpw
>>408
フローチャートって基本じゃないの?
その上でのオブジェクト指向だろ
何をもってして害悪って言ってるのかがわからんが
410Now_loading...774KB:2009/06/02(火) 14:02:06 ID:T7sr0ypz
自分もUMLとか全然詳しくないけど、
デザイナーが実際にデザインする前にレイアウトのスケッチを書いて
配置決めておくように、プログラマーは実際にクラスを書く前にどういう
クラスを作るかをメモっておくと、後から大規模な変更で苦労しなくて済む
ぐらいの感じで捉えてる。
フローチャートはどうだろう、そこまできちんと決めていなくても、
後から結構変更きくんじゃないだろうか。
411Now_loading...774KB:2009/06/02(火) 14:13:10 ID:dOQbfKYh
412Now_loading...774KB:2009/06/02(火) 14:18:13 ID:aIO/K3ZQ
UMLだろうがフロー図だろうが必要になれば自然に書くよ
頭でっかちで意味も分からずに信奉したり切り捨ててる奴は放っておけばおk
413Now_loading...774KB:2009/06/02(火) 14:42:36 ID:cn03Y4G6
441
これいいですね。一般的なフロー図とはちがうようだけど。。
414Now_loading...774KB:2009/06/02(火) 15:57:46 ID:+UAo9O5i
趣味でやってる分には余程はじめから本格的なシステム組もうと
思わない限りは書かないしなあ
作ってる途中で中断、時間が開いて再開時に?になるのはいつものことだ
415Now_loading...774KB:2009/06/03(水) 07:29:48 ID:JGJk+YFL
>>373
あーなるほど!!すごい理解した。
トンクス!!!!11
416Now_loading...774KB:2009/06/03(水) 12:33:50 ID:Uis4PMEP
as3で、読み込んだXML操作してるんですが、
XMLオブジェクトに、あるElementが存在するかどうかというのは、
どうやって調べればいいのでしょうか?

var xml:XML =
<foo>
<element1>
text
</element1>
</foo>;
このとき"element1"が存在して、
たとえば"element2"は存在しない、ということを調べたいです。
417Now_loading...774KB:2009/06/03(水) 13:04:18 ID:oiUvXNN4
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/XML.html#hasOwnProperty()

これじゃないの。
ていうか、APIリファレンス見てるのか疑問に思うような質問多くね。
418Now_loading...774KB:2009/06/03(水) 15:30:23 ID:aCVlzhcr
as3で、任意のレイヤーを表示したり非表示にしたりってする操作は出来ますか?

419Now_loading...774KB:2009/06/03(水) 16:09:12 ID:U/uzH19G
>>416
私なら、xml.elements("element1")、xml.elements("element2")の様にアクセスするかな。
成功すれば取得、失敗すればundefined。
例外も出ないし、多数の要素を読み込んだ後に必須項目が揃っているかをまとめてチェッ
クすればスクリプトも見やすくなる。

>>418
レイヤーに対してどうこうする事はできない。
ムービークリップにして、そのvisibleをfalseにすれば、要求を満たせると思う。
420Now_loading...774KB:2009/06/03(水) 17:27:54 ID:aCVlzhcr
>>419
レスありがとう。

レイヤーのコントロールは出来ないのですね。
ムービークリップの方法を試してみようと思います。


421初心者:2009/06/03(水) 19:01:22 ID:s3KYP8fp
すみませんアクションスクリプト初心者です。
下のメッセージボードのソースはそれぞれ何をしようとしてるソースか
1単語づつ調べたのですがいまいちわかりません・・・
凄い迷惑な質問かもしれませんがどなたかバカでもわかりやすく説明していただけないでしょうか?
-----------------------------------------------------------------
function SetColor(obj)
{ myColor = new Color(obj);
myColor.setRGB(_root.load_mc.bc);}
System.useCodepage = true;
stop();
422初心者:2009/06/03(水) 19:07:35 ID:s3KYP8fp
------------------------------------------------------------------
onClipEvent(load)
{if (_parent.t_url == null)
{this.loadVariables("msgboard01.txt");}
else
{this.loadVariables(_parent.t_url); }}
onClipEvent(data)
{_parent.gotoAndStop(2);}

onClipEvent(keyDown)
{if (Key.isDown(17) && Key.isDown(32))
{  _parent.attachMovie("copyright", "copyright", 1);
_parent.copyright._x = (300 - copyright._width) / 2;
_parent.copyright._y = (200 - copyright.height) / 2;}}
--------------------------------------------------------------------
function doscroll(num)
{ with (msg)
{scroll = scroll + num;}}

_root.SetColor(btn_up);
_root.SetColor(btn_down);
title = _root.load_mc.title;
msg = _root.load_mc.txt;
---------------------------------------------------------------------
423Now_loading...774KB:2009/06/04(木) 00:27:49 ID:CXNzS0Kn
僕も初心者ですが、勉強のつもりでコメントつけてみました。
誤っているかもしれませんが。こんなものかと思います。
オブジェクトがどういったものかわからないので、多分ほかの人も
コードは読めてもその意味はわからないかと思います。

//SetColor関数の設定
function SetColor(obj)

//myColorにcolorクラスを設定
{myColor = new Color(obj);
//myColorを塗りつぶす。※引数が間違っているような。。
myColor.setRGB(_root.load_mc.bc);}

//通常のコードを使います。
System.useCodepage = true;
//ムービーを停めます。
stop();

//このムービーが読み込まれた時
onClipEvent(load)
//もし、_「parent.t_url」が空だったら
{if (_parent.t_url == null)
//msgboard01.txtを読み込ませます。
{this.loadVariables("msgboard01.txt");}
//空でなかったら
else
//「_parent.t_url」を読み込ませます。
{this.loadVariables(_parent.t_url); }}
424Now_loading...774KB:2009/06/04(木) 00:28:38 ID:CXNzS0Kn
//外部データを読み込んだら、親のムービーを2フレームに移動させ停めます。
onClipEvent(data)
{_parent.gotoAndStop(2);}

//キーが押された時
onClipEvent(keyDown)
//CtrlキーSpaceキーだったら。
{if (Key.isDown(17) && Key.isDown(32))
//ライブラリーからcopyrightというムービーを生成します。
{_parent.attachMovie("copyright", "copyright", 1);

//copyrightを指定の位置に配置します。
_parent.copyright._x = (300 - copyright._width) / 2;
_parent.copyright._y = (200 - copyright.height) / 2;}}

//doscroll(num) 関数の設定 ※ここでは読まれていない。
function doscroll(num)
{ with (msg)
{scroll = scroll + num;}}

//SetColor関数呼び出し
_root.SetColor(btn_up);
_root.SetColor(btn_down);

//title変数を代入
title = _root.load_mc.title;
//msg変数を代入
msg = _root.load_mc.txt;
425初心者:2009/06/04(木) 17:00:16 ID:/08z+uwx
>>423
>>424
お礼が遅くなってすみません
本当にありがとうございます!
今423、424のレスを見ながら勉強させてもらっています。
ActionScriptというものは自分にとって難しく、
聞きたいことが多すぎて次にどう質問したらいいかまだ固まっていませんので
まずは教えてくれたことにお礼をさせてください
頭が整理できたらまた来ると思いますので、その時もよろしくお願いいたします。
426Now_loading...774KB:2009/06/04(木) 20:57:15 ID:CXNzS0Kn
いいってことYO。ww。

それより、今から勉強するなら、
AS3.0(CS3以上)を勉強したほうがいいよ。
427Now_loading...774KB:2009/06/05(金) 04:52:03 ID:XEIlAOr4
WinXP-Pro(SP2),FlashCS3(AS3.0)
Tabキーのフォーカス制御で質問です。

テキストフォームに入力している途中にTabを入れようとTabキーを押したところ、
フォーカスが移動してしまい、Tabを使った入力が不可になってしまいました。
tabIndexで制御を試みましたがダメでした。

通常のワープロソフトのように

あいう|えお → あいう えお

とするにはどうしたら良いでしょうか?
428Now_loading...774KB:2009/06/05(金) 11:13:47 ID:2+EqQBRQ
hoge.tabEnabled=false;
429Now_loading...774KB:2009/06/06(土) 02:59:56 ID:jt4xf7Rj
AS3で、1つの外部PHPから2つの変数を読み込むことってできないですか。
どうしても先にprintしたほうの変数の中に後ろのほうも含まれてしまいます。

<?php
$answer1 = 100;
$answer2 = 200;

print "returnA=".$answer1;
print "returnB=".$answer2;
?>

とすると、
returnA = 100 (改行)returnB = 200

と、returnAの中にreturnB=200というのも文字列として含まれてしまいます。

一つのphpから、2つの変数をFlashに持たせたいということなんですが、
それって可能でしょうか?
430Now_loading...774KB:2009/06/06(土) 03:57:48 ID:Zl//iso1
>>428
thx
431Now_loading...774KB:2009/06/06(土) 03:59:42 ID:eHhaWux9
>>429
name=value&name=value
432Now_loading...774KB:2009/06/06(土) 04:15:28 ID:BA3lWJ0T
すみません、TextAreaが使えないのですが、分かる方いらっしゃいますでしょうか?

具体的には
import fl.controls.TextArea ;
で「見つかりません」というエラーになってしまいます。

というか
import flash.*
は全部大丈夫のようなんですが
import fl.*
関連は全滅のようです。
ActionScript3.0です。
433432:2009/06/06(土) 04:24:04 ID:BA3lWJ0T
Flashのインストールされてるフォルダ内に入っていたflフォルダを自分のプロジェクトの所にコピーしたらビルドできました。
でも、こんなことする人いないですよね。
どこかでパスを設定できるんでしょうか?
434Now_loading...774KB:2009/06/06(土) 06:17:27 ID:H5I0ivKY
次の記事(ふるいですが)みなさんどう思いますか?
http://japan.cnet.com/marketing/story/0,3800080523,20393688,00.htm

またjavascriptがECMA4.0の不採用によって、
ActionScriptが梯子をはずされたようにも思います。

昨今のマイクロソフト(Silverlight)の動きも気になります。
435Now_loading...774KB:2009/06/06(土) 08:08:43 ID:gAHunV0l
>>433
Flash CS4を使用していると見なして説明する。
なおCS3の場合、若干違う。

ファイル→パブリッシュ設定→Flash→ActionScript 3.0設定で指定できる。
ソースパスに持ってきたasファイルが元あった場所を指定すればいい。

環境設定でも同様の事が出来る。
こちらはグローバルなので全プロジェクトに適用される。

でも、flフォルダに関してはこの操作は不要のはずなのだが。
〜\Adobe Flash CS4\Common\Configuration\Components\User Interface\TextArea.swc
こちらのSWCライブラリを見に行くのが、デフォルトの動作。
asファイルは参考までに入れているだけで、パブリッシュ時はSWCライブラリ側を見に行く。

SWCライブラリは足りているのだろうか。
436Now_loading...774KB:2009/06/06(土) 12:31:56 ID:jt4xf7Rj
>>431
429です。ありがとうございます めちゃ簡単でしたね・・・・
437Now_loading...774KB:2009/06/06(土) 21:23:10 ID:0/7DsgG3
>>434
大きな画像のロード処理とか、複数のシーンのスムーズ遷移は
ActionScript使ったほうが奇麗にできる。
ちょっとHTMLに動きつけたいだけなら、JQueryつかったほうが遥かに簡単。
438Now_loading...774KB:2009/06/06(土) 21:34:13 ID:0/7DsgG3
あと、同じECMAScriptベースといっても
Flashはコンパイル処理されるので、Javaなどのコンパイラ言語に近づけたほうが
コンパイラによるエラーチェックや処理の最適化がしやすかったんじゃないかと思う。
逆にECMAScript5は今あるECMAScriptとの互換性を重視した感じで、Javaなんかの
プログラマを取り込まなくても十分やっていけるっていうか、ブラウザ標準なんだから
当たり前なんだけど、そういう余裕を伺わせる仕様な感じがした。
JohnRisingのところでECMAScript5はまとめてる。
http://ejohn.org/blog/ecmascript-5-objects-and-properties/
439432:2009/06/06(土) 21:36:21 ID:QsPdjpwi
>>435
ありがとうございます!
無事ビルドできました。

440Now_loading...774KB:2009/06/06(土) 21:41:27 ID:0/7DsgG3
http://css-tricks.com/video-screencasts/57-using-css3/

あとは、このスクリーンキャストでCSS3を詳しく紹介してる。
最後のほうにSafari4のトランジッション機能使ったアニメーションの紹介とか出てくる
441Now_loading...774KB:2009/06/07(日) 13:54:46 ID:r+6FAhtD
FlashCS3(AS3.0)をWinXP-Proで使用
MCにリンケージしたクラス変数へのアクセスで質問です。

Stage上に配置したCubeStageというMC(インスタンス名:cubeStage)に「Cube_MC01」
というpapervision3dにより立体を生成するクラスをリンケージさせました。この中には
var cubeSize:int=200;という変数があり、これにアクセスしたく思っています。

別のMCをクリックして
trace(getChildByName("cubeStage")); trace(MovieClip(cubeStage));
は共に [object Cube_MC01] と出るのですが、trace(MovieClip(cubeStage).cubeSize);は
 #1069: Cube_MC01 にプロパティ cubeSize が見つからず、デフォルト値もありません。
になります。

どうすればアクセスできるのでしょうか?
442Now_loading...774KB:2009/06/07(日) 15:16:51 ID:NoKX4KHY
そりゃ普通に cubeStage.cubeSize でいいんじゃねーの?
回りくどく行くなら
var c:Cube_MC01 = getChildByName("cubeStage") as Cube_MC01;
trace(c.cubeSize)
とか?
443Now_loading...774KB:2009/06/07(日) 17:32:13 ID:xIYsP4mo
>>442
レス有難うございます。

cubeStage.cubeSize と
var c:Cube_MC01 = getChildByName("cubeStage") as Cube_MC01;
trace(c.cubeSize)
の両方で試しましたが、
 1178: アクセスできないプロパティ cubeSize へのアクセスを、静的型 Cube_MC01 の参照を使用して試行しました。

と出ます。
Cube_MC01からはStageの変数にアクセス出来るのですが・・・

444Now_loading...774KB:2009/06/07(日) 20:09:32 ID:vqjP5J1E
AS3 (CS3)を使っています。質問させてください。

ライブラリ内に簡単なMCがあります。このMCには空のダイナミックテキストエリア(txt)を配置しています。
このMCをステージに5つほどコピーし、各MCのインスタンス名を、hoge1,hoge2,hoge3,hoge4,hoge5と設定しました。
この各オブジェクトのダイナミックテキストエリア(txt)にそれぞれのインスタンス名を表示させたいと思っています。
それで以下のようなスクリプトをステージのタイムラインに書いてみましたがうまくいきません。

どうすれば、各インスタンスにそれぞれのインスタンス名を表示できますでしょうか?
できれば、ループを使用したスクリプトをつかいたいです。

for(var i:int =1 ; i<=5; i++);{
getChildByName("hoge"+i).txt.text ="hoge"+i
}

どうぞ宜しくお願いします。
445Now_loading...774KB:2009/06/07(日) 20:36:25 ID:YNwVNMnP
>>444
iはintだろ? なら、"hoge"+i はStringとInt
for(var i =1 ; i<=5; i++) ならどう?
つーか、何でここにセミコロンがある → ++);{
446444:2009/06/07(日) 20:58:00 ID:vqjP5J1E
445さん。レスありがとうございました。

>つーか、何でここにセミコロンがある → ++);{
あ、すいません。ご指摘ありがとうございます。

for(var i =1 ; i<=5; i++)
先の件を修正して、上記のループを設定しましたが変わらずエラーが発生しました。
エラーの内容は以下のとおりです。

未定義である可能性が高いプロパティ txtに静的型flash.display:DisplayObjectの参照を使用してアクセスしています。

ライブラリも、それからコピーしたステージのMCにも、直下にtxt名でダイナミックテキストエリア設定しているのですが、、。
447Now_loading...774KB:2009/06/07(日) 21:01:18 ID:qXNxjywI
>>443
cubeSizeってのがpublicになってねーんじゃねーの?
448Now_loading...774KB:2009/06/07(日) 21:08:06 ID:qXNxjywI
>>444
getChildByNameの戻り値はDisplayObjectだからキャストしてやればいいんじゃね?
trace((getChildByName("hoge" + i) as MovieClip).txt.text)
キャストとか面倒なら配列アクセス演算子ではしょってもいいんじゃ?
trace(this["hoge" + i].txt.text)
449Now_loading...774KB:2009/06/07(日) 21:16:08 ID:qXNxjywI
それからデザイナー上がりとかでとりあえず動きゃいいレベルの人で
特にプログラム勉強する気無いならstrictモードはずした方がいいよ
パブリッシュの設定のAS3.0の設定項目にチェックあるから
450Now_loading...774KB:2009/06/07(日) 21:18:08 ID:qXNxjywI
それはずすと型チェックがゆるくなる
451444:2009/06/07(日) 21:29:39 ID:vqjP5J1E
448さん、ありがとう。できました!!

以下に直してできました。
(getChildByName("hoge" + i) as MovieClip).txt.text ="hoge"+i

> getChildByNameの戻り値はDisplayObjectだからキャストしてやればいいんじゃね?

MCのクラス(MovieClip)のテキストプロパティでなのに、
参照していた戻り値が DisplayObjectクラスになっていたということでしょうか?

as を使えば、クラスが違っても参照できるんですね。
452444:2009/06/07(日) 21:33:25 ID:vqjP5J1E
つれづれすいません。
strictモードをはずしたら元のソースでも問題なかったです。

勉強になります。ありがとうございました。
453Now_loading...774KB:2009/06/07(日) 23:24:59 ID:Hf9QwiLJ
WinXP+CS4で質問です。
ネットで公開されているクラスを導入しようとしているのですが、どうしても上手くいきません。
以下は状況です。

配置:
C:\Program Files\Adobe\Adobe Flash CS4\ja\Configuration\ActionScript 3.0\Classes\org\hoge 以下

パブリッシュ時のクラスパス指定(絶対パスで指定)
C:\Program Files\Adobe\Adobe Flash CS4\ja\Configuration\ActionScript 3.0\Classes

ドキュメントクラス内でのimport
import org.hoge.*;

こう指定して、hogeフォルダ内のFuga.asで定義されていた静的クラスFugaを使おうとすると
「未定義のプロパティFugaへのアクセスです」エラーが出ます。
hogeフォルダをマイドキュメントに移動させ、絶対パスで指定しても同じエラーでした。
またライブラリパス、外部ライブラリパス、どちらに記述しても同じ結果でした。
配布元でCS4上のバグフィクスを行なったばかりとの事なので、先方が間違っている
可能性よりはこちらの設定ミスの可能性が高いと思います。

どのようにクラスパスを設定すればいいでしょうか?
454Now_loading...774KB:2009/06/07(日) 23:26:00 ID:Yx42a8YO
AIRでアプリを作っています。
ウィンドウにファイルをドラッグアンドロップすると
データグリッドにそのファイル名が表示され、
「クリップボードにコピー」というボタンをクリックすると
そのデータグリッドにある全てのファイル名をクリップボードにコピーするアプリです。

データグリッド上で選択したファイル名をクリップボードにコピーは以下のコードで出来たのですが、
データグリッドの一番上から一番下まで全てのファイル名をクリップボードにコピーするにはどうしたらいいのでしょうか?

function clipboardpaste(event:MouseEvent):void{
var foo : Clipboard = Clipboard.generalClipboard;
var filename : Object = dg[0].selectedItem.name
foo.setData(ClipboardFormats.TEXT_FORMAT , filename);
};

よろしくお願いします。
455Now_loading...774KB:2009/06/08(月) 00:02:24 ID:AsZoiuOv
>>453
クラスパス指定は「\」では無く「/」を使用する。
この点は大丈夫かな?

それでもアクセスできなければ、internalクラスという事はないだろうか。
これは、パッケージの外からアクセスできない。
456Now_loading...774KB:2009/06/08(月) 00:59:22 ID:K4uFe9fC
勉強するつもりならstrictモードは絶対はずすな
457Now_loading...774KB:2009/06/08(月) 06:00:53 ID:S2b9wYjS
>454
スレ違い。
458Now_loading...774KB:2009/06/08(月) 09:19:26 ID:2S+J7FKZ
スレ違い覚悟の新参者です。適切なスレあれば教えて下さい。
DLしたFLASHにURLチェック機能あり、オフラインで見れません。
何かバッチをあててみることができますでしょうか?
459Now_loading...774KB:2009/06/08(月) 09:22:10 ID:9T+VIz9M
>>454
dataProviderプロパティ使ってDataProviderにアクセスして、そっからlengthとgetItemAtでループ処理で行けんじゃね?
460Now_loading...774KB:2009/06/08(月) 16:43:25 ID:11p2s52K
>>458
無い
461441&443:2009/06/08(月) 17:46:47 ID:35Rvt88a
>>447
どうも。コンストラクタで
public class Cube_MC01 extends MovieClip {
・・・
var cubeSize:int=100;
・・・

と書いています。まだ解決できません。
もしかしたら、「Papervision3d固有の問題かも?」と思っています。

似たような経験がある人いますか?
462Now_loading...774KB:2009/06/08(月) 18:31:54 ID:PBcACWfE
それpublicじゃないじゃん
public var cubeSize
しょ
463Now_loading...774KB:2009/06/08(月) 19:02:27 ID:AsZoiuOv
>>461
アクセス修飾子(public / private など)を省略すると「internal」になる。
この時、パッケージ外からアクセスできない。
464441&443:2009/06/08(月) 20:32:26 ID:35Rvt88a
>>462-463
有難うございます。
でも、まだ駄目です。

public var cubeSize:int=100;
及び
var c:Cube_MC01 = getChildByName("cubeStage") as Cube_MC01;
trace (c.cubeSize);
としても、
 1178: アクセスできないプロパティ cubeSize へのアクセスを、静的型 Cube_MC01 の参照を使用して試行しました。
が出ます。

どうも解決出来ないようなので、この件は保留します。
465453:2009/06/08(月) 23:06:27 ID:j4nqxdsm
>>455
>>クラスパス指定は「\」では無く「/」を使用する。

はい。念のため/と\の両方で試しています。
また、flaファイルとドキュメントクラスと同じ階層にorgフォルダをおき、クラスパスで
「.」を指定してみましたが、状況は変わりません。

>>それでもアクセスできなければ、internalクラスという事はないだろうか。

クラス宣言(>>453で言う"Fuga")にはpublic指定はついています。
コンストラクタが省略されていたので、念のためクラスに

public function Fuga():void{}

を追加してみましたが、状況は変わりませんでした。

いま再度エラーメッセージを確認したところ、コンソールの末尾に
「定義 org.hoge が見つかりません」(import の行)
と出ていました。やはりパスの指定がおかしいのでしょうか?
466Now_loading...774KB:2009/06/08(月) 23:26:41 ID:PBcACWfE
なんだろね
>>461の書き方だとそのクラス自体がそもそもMovieClipしか継承して無い書き方だから
papervision3Dのクラスを継承してねーんじゃねーのかな?
その自作クラスのメンバとして委譲させてんのかな?

あと、プロパティ宣言と同時に初期値を代入すんじゃなくて、コンストラクタ内で初期値を代入したらどうかな

なんつーか、自作クラスを普通にリンケージした事ある?
ちょっと根本的なとこ勘違いしてはまってんじゃねーのかな
467Now_loading...774KB:2009/06/08(月) 23:30:56 ID:PBcACWfE
importできてねーんじゃクラスパスが通ってないわなあ
468Now_loading...774KB:2009/06/09(火) 01:09:22 ID:bCWsoqkr
WinXP+AS3.0(CS3)

A.tabEnabled=false; でTabキーによるフォーカス移動を制限しようとしていますが、
オブジェクト(インスタンス)が15個くらいあり、その1個1個に
A.tabEnabled=false;
B.tabEnabled=false;

などとやるのが面倒です。また、今後オブジェクトが増える可能性もあるので、1個を
除いて一気にStageのオブジェクト全てで非フォーカス化する方法はありますか?
(つまりフォーカスは基本1個にしか当たっていない)

インスタンス名が番号を含んでいれば良いのですが、それが出来るのは精々
2個程度で困っています。
469Now_loading...774KB:2009/06/09(火) 02:09:01 ID:DPNrG0YX
>>468
表示オブジェクトを継承して、自分用のサブクラスを作成する。
サブクラスのコンストラクタで「super.tabEnabled=false;」。
470Now_loading...774KB:2009/06/09(火) 03:02:31 ID:bCWsoqkr
>>469
あんがと。
やってみます。
471Now_loading...774KB:2009/06/09(火) 03:23:37 ID:WTWrXujf
AS3を勉強しています。

function hoge(numA, numB){
var answer = numA+ numB
return answer
}

var func1 = hoge;
trace(func1(3,4))

var func2 = hoge(3,4);
trace(func2);

上記のfunk1 funk2結果は同じですが、
それぞれ文法の意味が全然違うと聞きました。
でも、自分にはよくわかりません。
どう違うのか、考え方をお教えください。
472Now_loading...774KB:2009/06/09(火) 03:32:15 ID:au/ksxR/
>>458
FLASHといえど、URLチェックされているのでは、クラッキングするしかないのでは?
473Now_loading...774KB:2009/06/09(火) 03:41:17 ID:WTWrXujf
458=472
止めてください。お願いです。
474Now_loading...774KB:2009/06/09(火) 05:04:28 ID:8o+SCtt4
>>471
どこがよくわかってないのか分からないけど、プログラムっていうのはメモリの上で
動いてるから、メモリのどの場所にどの関数や変数がおさめられてるかを考えれば
特に難しい事はないっていうか、自分はそういう考え方が一番すっきり納得できるけど。
上は、メモリのどこかにおさまってる関数の参照を変数にいれて別の名前をつけてから
別の名前を使って実行。
下は、メモリのどこかにおさまってる関数の参照を直接実行してその結果を変数に代入
してるだけだよ。
475Now_loading...774KB:2009/06/09(火) 05:06:41 ID:8o+SCtt4
どの場所におさめられてるかは関係なかった。
どこに納まってようが、いちいちそれを複数の変数にコピーしてたら
メモリの無駄遣いだから、メモリのどこに納まってますよって情報を
解決できるように別の名前をつけてるだけだよ。
476Now_loading...774KB:2009/06/09(火) 05:10:11 ID:cwOP3Fov
FLASHでサイト作ると、サイトを見る人のモニタの大きさで文字の大きさ変わっちゃうんですけど、
どうしたらいいですか?
画面小さい人には何が書いてるか分からないくらい文字が小さくなっちゃいます・・・。
477Now_loading...774KB:2009/06/09(火) 09:52:52 ID:DPNrG0YX
>>476
DPI
478Now_loading...774KB:2009/06/09(火) 12:31:37 ID:l7Pau9tD
>>471
func1:hogeという処理(関数)を、変数func1に入れている。
func2:hogeという処理(関数)を、引数3,4で実行した実行結果を変数func2に入れている。

蛇足なことを言うと
下の方は、実行結果を入れている変数なので、func2という変数名は不適切。

479Now_loading...774KB:2009/06/09(火) 14:51:17 ID:aO2BrQdZ
WinXP-Pro(CS3, AS3.0)です。

substringで抜き出した文字(1文字)が候補文字のいづれかに合致しているかを
正規表現で判定したいのですが、うまくいきません。

抜き出した文字Aが あ,い,う,え,お のどれかであればtrueで、それ以外はfalse
にしたく思っています。つまり、
 Aが「あ」 → true
 Aが「ろ」 → false

しかし試しに
var str:String = "あ";
var pattern = new RegExp("あいうえお", "g");
var regObj:Object = pattern.exec(str);
trace ("マッチング: " + regObj+"desu");
trace ("テスト: " + pattern.test(str)); // ←※
trace ("文字列: " + str.match(pattern)+"desu");

の場合、
マッチング: あdesu
テスト: false // ←※
文字列: あdesu

となってしまい、「あ」が検出されているのにpattern.test(str)でfalseになってしまいます。
どう書き換えるべきでしょうか?
480Now_loading...774KB:2009/06/09(火) 15:05:31 ID:AmGOrBgy
>>479
RegExpのメソッドは、一回実行するとカーソル位置(lastIndexの位置)が更新されるから、改めて使いたいなら初期化しないと駄目だよ
pattern.lastIndex=0;
trace ("テスト: " + pattern.test(str));
あと、それ
/[あいうえお]/g
じゃね?
481Now_loading...774KB:2009/06/09(火) 15:49:19 ID:aO2BrQdZ
>>480
できました!
あと、[〜]のご指摘ありがとうございます。
482Now_loading...774KB:2009/06/09(火) 17:25:03 ID:b1mG1Maj
FlashCS4、AS3でランダムにいろんなカード(今のところ32枚)
が出てくるプログラムをしたいのですがなかなか上手くいきません。

第一フレームにボタンを用意して、それを押したら結果が表示される。
フレーム2から33までにカードを用意して移動させようと考えています。

addEventListener(MouseEvent.CLICK,startbtn);
function startbtn(e) {
var r = Math.floor(Math.random *32)+1;
gotoAndStop(r);
}


ありったけの知識でここまでやりましたが、ダメでした。
どなたか、お知恵を貸してください。
483Now_loading...774KB:2009/06/09(火) 17:52:14 ID:NRmskdI7
>>482
ステージから見てボタン・カードはどこにある?
484Now_loading...774KB:2009/06/09(火) 18:16:51 ID:sjFTTJYQ
483様

ボタンは、第一フレームのステージに。
各カードは、32枚、それぞれフレーム2から33のステージに描く予定です。
485Now_loading...774KB:2009/06/09(火) 18:49:07 ID:NRmskdI7
>>484
ボタン名.addEventListener(〜
にする必要があるんではないか?
486Now_loading...774KB:2009/06/09(火) 18:50:37 ID:WTWrXujf
var r = Math.floor(Math.random *32)+1;

var r= Math.floor(Math.random() *32)+1;
487Now_loading...774KB:2009/06/09(火) 19:00:14 ID:NRmskdI7
>>486
あぁそうか、見落としてた。
ボタン名は書かなくてもステージにイベント当たるからその子を押しても大丈夫だもんな。
488Now_loading...774KB:2009/06/09(火) 19:09:46 ID:sjFTTJYQ
486さま
487さま

ありがとうございます。

さっそく、試してみます!!!

()をつけることで、これは関数の機能だと指示するんですね!
489Now_loading...774KB:2009/06/09(火) 19:23:48 ID:sjFTTJYQ
結局、これでうまくいきそうです。
あとは、32のシーンを完成するだけです。
本当にありがとうございました☆

stop();
startbtn.addEventListener(MouseEvent.CLICK,startb);
function startb(e) {
var r= Math.floor(Math.random() *32)+1;
gotoAndStop(r);
}
490Now_loading...774KB:2009/06/09(火) 19:25:55 ID:DPNrG0YX
>>479
var pattern = new RegExp("あいうえお", "");
にすれば、常に先頭から検索する。
「g」は不要だ。
491Now_loading...774KB:2009/06/10(水) 16:23:45 ID:5UApoAci
CS4使っています。
タイルリストについて質問です。
XMLからデータを読み込んで、タイルリストにロード、アイテム表示させてるのですが、
アイテムによっては、画像を2種類見せたいものがあります(使用時と収納時等)。
そこでリスト内の画像が、5秒ごとにフェードしながら切り替わるようなことが
できないかと思ったのですが、これって不可能ですか・・・?
492Now_loading...774KB:2009/06/10(水) 17:25:50 ID:Dg6jr9ju
はじめまして。
Flashで簡単なお絵かきのできるもの(マウスで自由に線が引ける)
を作りたいと思っています。FlashMXでAS1を使用しています。
色などをを決めるスクリプトが
lineStyle (1, 0x000000, 100); //線の太さ、色、明度
なのですが、ボタンをクリックすると、色は前と同じで太さだけ変わる
ものを作ってみたいんです。どう記入したらできるでしょうか?ラインスタイル
だけでできますか?
わかる方がいましたら教えて下さいませ。
493Now_loading...774KB:2009/06/10(水) 17:38:08 ID:stf+9ph3
>>492
それはすでに書いたものの太さを変えたいってことなのか?
あるいは次から書く線の太さを変えたいだけ?
494Now_loading...774KB:2009/06/10(水) 17:46:46 ID:Dg6jr9ju
>>493
返信ありがとうございます。
次から書く太さを変えたいのです。例えば赤色のボタン→色を変える
太さのボタン→太さを変える
といったように太さを変える時には今選択している色に影響せず変える事は
できるのかと思いまして。
もっとわかりづらくなってたら申し訳ない;
495Now_loading...774KB:2009/06/10(水) 17:50:59 ID:stf+9ph3
>>494
var hutosa = 1;
var iro = 0x000000;
var kosa = 100;

//太さを2に
hutosa = 2;
lineStyle (hutosa, iro, kosa);
//・・線を描く処理・・

//色を赤に
iro = 0xff0000;
lineStyle (hutosa, iro, kosa);
//・・線を描く処理・・

ただしこれくらい自分で考えられないとお絵かきを完成するのは難しいかも知れないぞ。
ちょっと基本を勉強しておいたほうが良いかもしれない。
496Now_loading...774KB:2009/06/10(水) 18:04:51 ID:Dg6jr9ju
>>495
回答ありがとうございます。助かりました。
自分はコンテンツ系なのでソースを拾いながら作業しているのですが
次回からはもっと勉強してから質問しますね。
お絵かきソフトはできるとこまで頑張ってみます。
497Now_loading...774KB:2009/06/10(水) 20:41:34 ID:qgfwHgQ8
質問なのですがAS2でHTTP通信以外の通信は出来ないでしょうか?
チャットを作っているのですがsendandload関数を使うと
Firefoxで「データを転送しています」と通信するたびにステータスバーに出てきてしまい鬱陶しいです。
498468:2009/06/10(水) 20:58:36 ID:H3JnwlpM
Tabキーによるフォーカス移動を制限するため、>>469さんの方法を試そうと
しましたが、「表示オブジェクトを継承した自分用のサブクラス」をどこに
どう書けばよいのか分かりません。

自作クラスを TabControl_01 として、ドキュメントクラスとRootのフレームアクションに
class TabControl_01 extends DisplayObject {
}
を書きましたが両方ともエラーになりました。

アドバイス願います。
499Now_loading...774KB:2009/06/10(水) 21:21:29 ID:stf+9ph3
>>497
XMLSocket
でもサーバーも独自に用意する必要があるよ。
500Now_loading...774KB:2009/06/10(水) 21:46:11 ID:rp84okpA
なんかひっでえレベルの低さだなこりゃ
501Now_loading...774KB:2009/06/10(水) 22:11:15 ID:qgfwHgQ8
>>499
ありがとうございます
ほとんどのオンラインゲーム、チャットはXMLSocketを使用しているのでしょうか?
HTTP通信をしているものを余り見たことがないので
502Now_loading...774KB:2009/06/10(水) 22:22:48 ID:HplaCrHu
NetStreamで読み込んでいるFLVのバイナリにアクセスする方法ってありますか?
503Now_loading...774KB:2009/06/10(水) 23:39:41 ID:wmlaqT9t
ものすごく初歩的な質問なんですが。

「ActionScript3.0」って、自分はプログラミング言語名だと思ってたんですが
ツール名として使われているらしい記事も見かけます。
例えば ttp://gihyo.jp/dev/serial/01/as3/0002?page=2 では
「ActionScript3.0では、flaファイル内のスクリプトは
メインタイムラインもしくはムービークリップのキーフレーム内に記述する」
とありますが、この文章での「ActionScript3.0」って
そういう名前のツールのことですよね?
一般的にはどっちを指すんでしょう?

あと、プログラム言語としてのActionScript3.0で、
MovieClipの使い方を説明しているサイトを教えてください。
公式APIを見て、フレームの進め方などは書かれているのですが
あるMovieClipが何フレームからなり、
どのフレームにどのようなオブジェクト、または処理が紐付けられているのか、
という情報を初期化する方法がわからず……。
504Now_loading...774KB:2009/06/10(水) 23:50:20 ID:KJEB/IhO
>>503
その文脈は
(Flash CS3でスクリプトを記述する場合、)ActionScript3.0では、flaファイル内のスクリプトは〜
ということでツールのことはさしていません。この場合ツールはFlash CS3です。

後半はフレーム数以外は簡単に取得する方法はないんじゃないかなー。
505Now_loading...774KB:2009/06/11(木) 00:04:10 ID:+F/n6THU
>>504
レスありがとうございます。
前半、そういう意味なんですね。
基礎的知識がないせいかピンと来ませんが、そういうものなんだなと理解しました。

後半は、無理なんですか!
MovieClip のフレームやタイムラインでの制御というのは、
Flash CS3のようなGUIツールだけで使える機能と思っていいのでしょうか。
そうすると、MovieClipは重そうなので、どうせフレームなどが使えないなら
Spriteで同じ動きを再現するようにしたほうがよさそうですね。

ちなみに、自分の現在のActionScriptの知識量は
ttp://gihyo.jp/dev/feature/01/flash-sdk
これの連載第七回まではやってみたというところです。
ActionScript でぐぐると、GUIツールの話ばかり出てきて困っているところでした。
初歩的すぎる質問への回答、ありがとうございました。
506Now_loading...774KB:2009/06/11(木) 03:11:24 ID:0vA+RufZ
>>498
サブクラスを制作する方法は、やめておこう。
私が認知症になる方が早そうだ。
今日の所は、アクションフレームではカスタムクラス定義できない、とだけ覚えてくれ。

邪道だが、別の方法を伝授する。
1. 以下のファイルをコピーしてくれ。
  コピー元:(略)\Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\User Interface\fl\controls\TextInput.as
  コピー先:貴方のプロジェクトフォルダ\fl\controls
2. 貴方のプロジェクトフォルダのTextInput.asを修正してくれ(コピー元は決して修正しない事)。

  (旧) public function TextInput() { super(); }
  (新) public function TextInput() { super(); tabEnabled = false; }

3. Flash上でコンポーネントリスト(Ctrl + F7)から「TextInput」をステージにドラッグする。
  試しに2、3個持ってきてくれ。

4. これで実行。 Tabが無効になっている事が確認できると思う。

もし、ソースパスがコピー元を通っていたら、デフォルトに戻して切って欲しい。
つまり、swcよりasファイルが優先して使用される事を利用している。
私のCS4では動作した。
507Now_loading...774KB:2009/06/11(木) 03:11:43 ID:c8d0foUa
as3です。FlashCS3使ってます。
背景色をAS側から、途中で変更することってできるのでしょうか。
もともとはFlash上のプロパティで設定してます。
508Now_loading...774KB:2009/06/11(木) 07:59:08 ID:wEt/cqW1
変数でデータ型を設定したりしますが、
これってクラスのことですよね。
データ型はクラスと同義でしょうか?
509Now_loading...774KB:2009/06/11(木) 10:04:41 ID:c79SHMXy
>>498 >>506
そんなめんどくせー事しなくてもtabChildrenをfalseにすりゃ済む話なんじゃね?
510Now_loading...774KB:2009/06/11(木) 10:08:16 ID:c79SHMXy
>>507
背景色はムービ表示する時のタグで指定するから、そのまんまじゃ無理かな
ASで制御したいなら、javascript経由でタグ自体をasから書き換えるか、特定の背景色を設定したShapeを下に敷くかかなあ
Shape使う場合はopaqueBackgroundで色を指定してあげれば、マウスの当たり判定とかにも影響で無いんじゃなかったかな
511Now_loading...774KB:2009/06/11(木) 10:10:30 ID:c79SHMXy
>>508
同義と言われるとちょっと違うけど、
「この変数に、どのクラスとして扱いたいものへの参照を入れたいのか」
という設定をしている
そーいう意味ではデータ型はクラスの種類を指定しているかな
512Now_loading...774KB:2009/06/11(木) 16:46:38 ID:o7q/iWPC
単刀直入にお聞きします。

linuxで動く、Xを使わないAcitonScript3の実行環境って
ありませんか?
(コンパイル環境ではない)
513Now_loading...774KB:2009/06/11(木) 17:44:08 ID:iMfswuli
ActionScript3自体がFlashのAPIに依存してるから、
FlashPlayer使う以外に選択肢ないんじゃないの。
いまLinuxのFlashPlayerのアップデート状況がどうなってるか
知らないけど
514Now_loading...774KB:2009/06/11(木) 17:44:13 ID:tSr8y8PF
stage.addEventListener( Event.RESIZE, resizeHandler );
public function resizeHandler(event:Event):void {
mySprite.y = stage.stageHeight - mySprite.height
}

Actionacript3.0です。
ブラウザ画面のサイズが変更されても、mySpriteがブラウザ画面の下端に配置されているようにしたいのです。
上の方法で、ブラウザの端をドラッグしてサイズを変更した場合は、mySpriteがブラウザの下端に追従するようになるのですが、
ブラウザの最大化&元に戻すボタンでサイズを変えた場合、mySpriteがサイズ変更前の場所で止まってしまいます。
この、最大化ボタン等を押してサイズを変えた場合も画面の下端に追従させるにはどうすれば良いのでしょうか。
515Now_loading...774KB:2009/06/11(木) 18:12:18 ID:VQ4SeUpx
>>514
ちょっと今実際に試せないからすぐに解決方法示せないんだけど、
イベントが発生しないのか、stage.stageHeightが更新されないのかわかる?
イベントが発生しないのならちょっと非効率的だけど定期的にサイズを調べれば
良いだろうし、サイズが更新されないのなら・・・
516Now_loading...774KB:2009/06/11(木) 20:21:49 ID:zsdQF7it
vista&cs3環境でbitmapdataを弄ってるんだけど、

ttp://uproda.2ch-library.com/lib137908.jpg.shtml
みたいに画像が重なると透明部分が欠けちゃって困ってます。

var bd1:BitmapData=new BitmapData(stage.stageWidth,stage.stageHeight,true,0x00000000);
var canvas:Bitmap=new Bitmap(bd1);
addChild(canvas);
var sprite:Sprite=new Sprite();
sprite.graphics.beginFill(0x33A0E8);
   sprite.graphics.drawCircle(0,0,15);

var bd2:BitmapData=new BitmapData(sprite.width,sprite.height,true,0x00000000);
var mat:Matrix=new Matrix();
mat.tx=sprite.width/2;
   mat.ty=sprite.height/2;
bd2.draw(sprite,mat);

var rect:Rectangle=new Rectangle(0,0,sprite.width,sprite.height);
var po:Point=new Point(100,100);

bd1.copyPixels(bd2,rect,po);

po.x=110;
po.y=110;

bd1.copyPixels(bd2,rect,po);

どうやったらきれいに画像を重ねることができるんでしょうか??
517468&498:2009/06/11(木) 20:44:48 ID:qJKgenBu
>>509
さんきゅう。
出来ました。
518Now_loading...774KB:2009/06/11(木) 22:04:23 ID:1XbZ1NDQ
ActionScriptでインタプリタを作ろうとしてるんですけど、
変数の処理の仕方がわからず手間取ってます。
二分木のようなものってASで作れますか?

あと外部テキストファイルの読み込みで、タグの関係で「<」記号が
文字として読み込まれないのですが、解決策ってありませんか?

お願いします。
519Now_loading...774KB:2009/06/11(木) 22:19:01 ID:mobv69Ut
>>518
>二分木のようなものってASで作れますか?
作れる

>タグの関係で「<」記号が文字として読み込まれない
普通はそんな事無い
どうやって読み込んで、どうやって「読み込まれない」と判断してるのか
具体的なコードで示して
520Now_loading...774KB:2009/06/12(金) 00:03:39 ID:iMfswuli
XMLならCDATAじゃないの
521Now_loading...774KB:2009/06/12(金) 00:13:57 ID:XK1+dhWF
>>516
bd1.copyPixels(bd2,rect,po,null,null,true);
こうかえ?
522516:2009/06/12(金) 01:16:52 ID:kNLmGSeW
>521
できたサンクス!
でも描画系は引数多くて頭混乱するなぁ。。
523Now_loading...774KB:2009/06/12(金) 19:53:24 ID:iPFo99Lr
516のソースをみて殆ど理解できなかった。
まだまだだなー。
524Now_loading...774KB:2009/06/12(金) 22:29:45 ID:prERj78j
AS3.0とAS2.0の違いって何なんですか?
例えば3.0ではon(press)などが使えないのはなぜですか?
525Now_loading...774KB:2009/06/13(土) 00:09:14 ID:pGRYDlpv
FlashCS3(AS3.0)をWinXPで使用。
オリジナルのSWF-Playerを作ろうとしています。

AS2.0ならメインタイムラインのフレームアクションで this.loadMovie(); と
1行書けば良かったのですが、AS3.0での書き方が分かりません。
一応、下の記述をメインタイムラインのフレームアクションに書いてExeで
パブリッシュすればSWFは認識します。

var swfLoader:Loader = new Loader();
swfLoader.load (new URLRequest(stage.toString()));//ここに問題?
swfLoader.contentLoaderInfo.addEventListener (Event.COMPLETE, load_onComp, false, 0, true);
function load_onComp (loadEvt:Event):void {
swfLoader.contentLoaderInfo.removeEventListener (Event.COMPLETE, load_onComp);
}

しかしこれだとnew URLRequest()の引数に問題があるらしく(?)、プレビューで
 Error #2044: ハンドルされていない IOErrorEvent : text=Error #2035: URL が見つかりません。
となります。

つまりPlayerとしての機能は果たしているものの、エラー持ち(問題持ち)の状態です。
アドバイス願います。
526Now_loading...774KB:2009/06/13(土) 00:20:54 ID:SsgwtN+q
URLRequestの引数はファイルの場所だよ。
とりあえず、Loaderのリファレンス
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/Loader.html
527Now_loading...774KB:2009/06/13(土) 00:24:24 ID:SsgwtN+q
>>524
onPressってメソッドがMovieClipなんかのインスタンスにないから。
違いを一言でいうと、Javaのほうが商業的に成功してて開発者もいっぱいいるから、
Javaぽい文法にしたほうが、開発者が増えてAdobeの製品買ってくれるってそういう
ビジネス上の理由が一番じゃない。
528453:2009/06/13(土) 01:50:53 ID:KG5BMKCd
>>453=465です。
あれからいろいろと試して、なんとか「同じフォルダにorgファイルを置く」ことで
ライブラリを読ませることに成功しました。
以前試したときに動かなかった記憶があるので、なぜ今になって動作したのかは
さっぱり分かりませんが・・・・

ともあれ、お答えくださった方、ありがとうございました。
529Now_loading...774KB:2009/06/13(土) 02:01:14 ID:pGRYDlpv
>>526
どうも。
引数は「場所を指定しない」という意味で swfLoader.load (new URLRequest(""));
としましたが、まだエラーが出ます。

苦肉の策で、自分自身を参照する swfLoader.load (new URLRequest("Player.swf"));
としたところ、エラーは出ませんし、これをExeにすれば他のSWFの再生も出来ます。

でも何か気持ち悪いです。
どうしたら良いでしょうか?
530Now_loading...774KB:2009/06/13(土) 04:07:30 ID:LTt378pn
>>529
load()は外部ファイルを読み込むメソッドだよ。
当然、外部ファイル名を必要とする。

場所を指定したくないのはなぜなんだろう。
ライブラリにあるswfファイルを再生したいのなら、load()は不要だけど。
531Now_loading...774KB:2009/06/13(土) 10:51:35 ID:2PhtayaQ
>>527
なるほど、分かりやすい説明ありがとうございます。
これからflashやActionScript
532Now_loading...774KB:2009/06/13(土) 10:52:38 ID:2PhtayaQ
>>527
なるほど、分かりやすい説明ありがとうございます。
これからflashやActionScriptを勉強しようと思っているのですが、AS3.0から始めたほうがいいでしょうか。
今後はAS3.0が主流になっていくのでしょうか。
533Now_loading...774KB:2009/06/13(土) 11:42:24 ID:gwGf0PVR
>>532
AS2かAS3かなんてたいした問題じゃない。
何をしたいのか、そのためには何が必要なのか、だ。
534Now_loading...774KB:2009/06/13(土) 13:10:16 ID:IXTc/3SX
>>532
単なる1発モノで浮動小数点を多用しないならAS2.0の方が速くできる。
逆に複数の人間に割り振って開発したり、浮動小数点を多用したり、継続的に
改良する見込みがある場合はAS3.0の方をお薦めする。
535Now_loading...774KB:2009/06/13(土) 14:04:25 ID:aEMBRWzN
>>530
最初にも書いていますが、目的はオリジナルのFlashプレーヤー作成であり、
特定の場所の特定のSWFを対象にしてないので(本音では)loadの引数を
無しにしたいくらいです。
※AS2.0では this.loadMovie(); で済みましたので。
536Now_loading...774KB:2009/06/13(土) 14:18:05 ID:7xx6Yt1g
>>535
答えになって無くてすんません。
よくわからんのですが、引数が要らない、ということは、
外部ファイルをロードしなくてもいいってことじゃないのかな?
任意のファイルを選ぶなら、当然引数にそのファイルの場所が代入されるんだろうし
引数は要らないがファイルをロードするってケースってどういう場合なのか
興味あります。
537Now_loading...774KB:2009/06/13(土) 15:45:28 ID:Cmf1mTgh
>※AS2.0では this.loadMovie(); で済みましたので。

そんなわけねーよ
538Now_loading...774KB:2009/06/13(土) 16:50:14 ID:If5C/teU
>>536
そもそも何故オリジナルのFlashPlayerが必要か?という所から答えます。

(舞台はFlash開発環境が無いモバイル用ノートです)
今まではthis.loadMovie();で作ったExeファイルにSWFをドラッグ&ドロップすれば
自動的にSWFのアイコン(Player8なら真ん中に青丸)が表示され、スタンドアロンで
SWFが再生できていました。

ところがPlayer9になってからはCS3のPlayre9にSWFをドラッグ&ドロップしても
SWFのアイコン(中央にfのマーク)にならないため、自作でPlayerを作ろうと
思いました。
要はモバイル用ノートでSWFのアイコン表示をそれ相応のものにしたいということです。


>>537
http://uproda11.2ch-library.com/182195kfO/11182195.fla
539Now_loading...774KB:2009/06/13(土) 16:55:53 ID:HeEp2Vkp
そりゃあんたのノートPCの拡張子の関連付けとスタンドアロンプレーヤーの問題じゃん
スクリプトは1ミリも関係ねー
540Now_loading...774KB:2009/06/13(土) 17:09:46 ID:If5C/teU
>>539
拡張子を認識させるよう設定したのですがダメでした。
541Now_loading...774KB:2009/06/13(土) 17:22:51 ID:HeEp2Vkp
あんたの設定の仕方なんて知らねーよ
つーかadobeのスタンドアロンプレーヤー勝手にダウンロードして入れてくれよ
付き合いきれんわ
542Now_loading...774KB:2009/06/13(土) 18:21:30 ID:KbfdNlJN
>>538
>今まではthis.loadMovie();で作ったExeファイルにSWFをドラッグ&ドロップすれば
意味が良くわからないんだけど、loadMovie()は何のために書いてるの?
543Now_loading...774KB:2009/06/13(土) 18:38:11 ID:rWVJydpW
すみません。
キー入力イベントに関する質問です。 お願い致します。

TextField(入力可)を表示している状態で、stageにイベントハンドラを設定しています。
一定条件でTextFieldを非表示にした場合、stageへキー入力イベントが来なくなってしまいます。
マウスクリックでstageをクリックすれば来る様になるのですが不便です。

TextFieldを非表示にした時にキー入力のフォーカスが失われていると思います。
これを解決できないでしょうか? (サンプル作ったので↓に貼ります。)
544Now_loading...774KB:2009/06/13(土) 18:40:01 ID:rWVJydpW
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
[SWF(width=320, height=240, backgroundColor=0xA0A0A0)]
public class test extends Sprite {
private var iCnt1:int = 0;
private var oLabel1:TextField;
private var oInputText1:TextField;
//コンストラクタ
public function test() {
iCnt1 = 0;
oLabel1 = new TextField();
oLabel1.x = 0;
oLabel1.y = 0;
oLabel1.width = 256;
oLabel1.height = 20;
addChild(oLabel1);
oInputText1 = new TextField();
oInputText1.x = 0;
oInputText1.y = 40;
oInputText1.width = 256;
oInputText1.height = 20;
oInputText1.border = true;
oInputText1.selectable = true;
oInputText1.maxChars = 20;
oInputText1.type = TextFieldType.INPUT;
addChild(oInputText1);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
545Now_loading...774KB:2009/06/13(土) 18:41:28 ID:rWVJydpW
//キーイベント
private function onKeyDown(evt:KeyboardEvent):void {
iCnt1++;
oLabel1.text = "onKeyDown:" + iCnt1.toString();
if (iCnt1 == 10) {
removeChild(oInputText1); //これやると来なくなる
}
}
}
}

行数が多くてカキコできなかったので2レスに分けました。
見づらくてすみません。
546Now_loading...774KB:2009/06/13(土) 18:42:57 ID:rWVJydpW
ぎゃぁ! 行頭のスペースがなくなって物凄く見辛い・・・ 申し訳ないです ↑
547Now_loading...774KB:2009/06/13(土) 20:18:52 ID:VnsxLdTW
>>546
フォーカス持ったまま表示リストから外れちゃったからかな
removeChildするときに、

stage.focus = stage

でもしてフォーカスを表示リストに返しておけばいいんじゃね?
548Now_loading...774KB:2009/06/13(土) 21:05:38 ID:rWVJydpW
>>547
神様ありがとうございます!
調べたのですがフォーカスを変更する方法がわからなくて困っていました。 解決しました。!
549Now_loading...774KB:2009/06/13(土) 21:06:54 ID:RCzg07uX
>>543
イベントターゲットが表示リストに無い場合、ターゲットへ直接イベントが渡される。
つまり、removeChildするとstageを経由しなくなる。

visible=falseに置き換えては。
550Now_loading...774KB:2009/06/13(土) 21:25:47 ID:rWVJydpW
>>549
ありがとうございます。
フォーカス変更がプロパティの代入で出来る事を知らなかったので、その方法でやろうかと思っていました。
上に貼ったテストプログラムでは省略してありますが、あのTextFieldは配列にしていて
状態によって数が変化するので、表示するたびに new deleteを行っていました。
なので、出来ればフォーカスの変更で対応できないかと考えていました。

今後他の部分で同じ問題にぶつかったら、そのような方法も検討してみますね。
ありがとうございました。
551Now_loading...774KB:2009/06/13(土) 21:45:33 ID:yjRAKv5+
>>543, 547, 549

俺も同じようなことで悩んでいた。
552Now_loading...774KB:2009/06/14(日) 01:25:11 ID:lQtOXTvs
>>538
すまんが、その説明とloadMovie()の関係がまったくわからない…。
実行形式ファイルを書き出したいだけなら、ASいらないのでは?
553Now_loading...774KB:2009/06/14(日) 02:51:25 ID:c5Lf9efW
自前のPlayerなんて作らずに
スクリプトを書いて、コンパイルしたファイルをPlayerで再生するようにすれば
いいだけじゃね。
ていうか、FlashDevelopにもともとそういう機能ついてるんじゃね。
自分はFDTってのを今使ってるから詳しく知らないけど。Flash IDEなくても
Flex SDKあれば何ら問題ないはずだと思うけど。
554Now_loading...774KB:2009/06/14(日) 03:56:07 ID:u9r3+X5d
AS3初心者なんですが、
C++での
void CFoo( const int& a ) const{...}
のようなconstに相当する機能を実現することは可能でしょうか。
555Now_loading...774KB:2009/06/14(日) 03:58:51 ID:u9r3+X5d
あ,すみません。間違えました。もう一度。
C++での
void CFoo1::Foo( const CFoo2& a ) const{...}
のようなconstに相当する機能を実現することは可能でしょうか。
556Now_loading...774KB:2009/06/14(日) 08:11:27 ID:WmAKyZFS
>>555
C++の様な関数の定義はできない。

var o1:Object;
var o2:Object;

// o1, o2に何か値を代入
// (略)

foo(o1, o2); // 参照渡しなので、o1とo2の値が変わるかもしれない。

foo(new Object(o1), new Object(o2)); // コピーの参照を渡しているので、o1, o2の内容は保証される

後者の記述が近いか。
定義の段階で保護したければ、

function foo(p1:Object, p2:Object):void {
  var l1:Object = new Object(p1);
  var l2:Object = new Object(p2);

  // 以下、p1, p2を使用しない
  // (略)
}

の様に冒頭でコピーか。

C++は理系向け、javaやAS3は文系向けという気がする。
557Now_loading...774KB:2009/06/14(日) 08:34:38 ID:c5Lf9efW
AS3のサンプル見るまで、C++の引数のconstが何してるのかさっぱりだった。
正直、AS3のほうが直感的で分かりやすいと思うのは、俺が文系というか美術系だからか。
558Now_loading...774KB:2009/06/14(日) 09:53:59 ID:JwlK+voe
文系理系とか関係ないよw

バグで苦しんだ経験があるかどうか、チームでプログラムを作ったことがあるかどうかだよ。
そのためのconstだから。
559Now_loading...774KB:2009/06/14(日) 10:12:14 ID:I6mpmChg
fla内でトップレベルのクラスを扱うときは、
import の記述は必要ないと習いました。

でも、トップレベルでないクラス例えば、
MovieClipとか扱うときでも、importを使った覚えないような
気がします。

importを使うときといえば、外部にあるカスタムクラスを
扱うときぐらいです。

「fla内でトップレベルのクラスを扱うときは、
import の記述は必要ない」

というのは本当にただしいのでしょうか?
560Now_loading...774KB:2009/06/14(日) 10:36:55 ID:BWKW6nFF
>>559
正しい。
561Now_loading...774KB:2009/06/14(日) 11:02:10 ID:I6mpmChg
ありがとう。
では、

「fla内でビルトインのクラスを扱うときは、
import の記述は必要ない」
は正しいですか?

MovieClipクラスや、Shapeクラスは
トップレベルのクラスではないですよね。
562Now_loading...774KB:2009/06/14(日) 12:43:09 ID:u9r3+X5d
>>556
なるほどよくわかりました。
ありがとうございました。
563Now_loading...774KB:2009/06/14(日) 15:25:43 ID:WmAKyZFS
>>561
フレームアクションかどうかにもよる。
フレームアクションの場合、adobe.utils、flash(一部例外がある)パッケージはimport記述を
省略できる。
564Now_loading...774KB:2009/06/14(日) 16:10:26 ID:I6mpmChg
ありがとう。
そういえば、フレーム以外にもスクリプトを書けましたね。

勉強になりました。
565Now_loading...774KB:2009/06/15(月) 01:14:21 ID:axV+cr69
AS2.0 20fps
でキーに短い効果音を割り当てたいのですが
2フレーム目に
var mc0 = _root.createEmptyMovieClip("sound_mc0", 100);
var mc1 = _root.createEmptyMovieClip("sound_mc1", 101);

var sound_obj0 = new Sound(mc0);
var sound_obj1 = new Sound(mc1);

sound_obj0.attachSound("hihat");
sound_obj1.attachSound("crash");

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
if (Key.isDown(90)) {
sound_obj0.start();
}
if (Key.isDown(88)) {
sound_obj1.start();
}
};
Key.addListener(keyListener);
と書いて3フレーム目で動かすのですが、

キーを連打するとうまく音が再生されません。
秒間20連打してるわけでもないんですが。
キーにイベントリスナーでサウンドを割り当てるときに注意点のようなものはありますか?
566Now_loading...774KB:2009/06/15(月) 02:09:16 ID:rVzQCPvw
AS2.0です。
getTimer関数というのはムービーが再生されてからの時間しかとることができないのでしょうか?
ステージ上のボタンを押してからの時間をとりたいのですがどのように記述してよいか分かりません。
567Now_loading...774KB:2009/06/15(月) 08:19:24 ID:bWn0sDEO
>566

btn.addEventListener(MouseEvent.CLICK,hogetimer);
var count:int = 0;

function hogetimer(evet:MouseEvent):void {
count++;
if (count % 2 == 1) {
var startTime:int = getTimer();
} else {
trace(getTimer()-startTime);
}
}
568Now_loading...774KB:2009/06/15(月) 08:22:33 ID:bWn0sDEO
あ、AS2か。
ごめん。AS2はわからない。。。
569Now_loading...774KB:2009/06/15(月) 10:52:45 ID:tscfng72
>>567
ボタンを押した時にgetTimer()して、現在のgetTimer()からひけばいいのでは?
570Now_loading...774KB:2009/06/15(月) 10:53:00 ID:bWn0sDEO
CS3です。

すいません。デフォルトの外部ASへのパス設定が削除されてしまいました。
急ぎ、どなたか。パスの値をお教えいただけますでしょうか?

メニュー→編集→環境設定→(カテゴリ)ActionScript→(言語)ActionScript3.0設定

にデフォルトで記述されているクラスパスです。恐らく「$」から始まります。
どうぞ宜しくお願いします。
571Now_loading...774KB:2009/06/15(月) 11:05:42 ID:tscfng72
>>565
「うまく音が再生されません」とは、具体的に、どうなるべきところが、どうなってしまうの?
その通りに作って普通に連続で音がするように思うのだが。
572570:2009/06/15(月) 11:13:59 ID:bWn0sDEO
お騒がせしてごめんなさい。自己解決しました。
573Now_loading...774KB:2009/06/16(火) 02:51:03 ID:Mgvjjq6J
NetStreamでビデオをループさせたいと思って、
"NetStream.Play.Stop"をリスナーで監視しておいて、
再生が止まったタイミングで、
netStream.seek(0)
で戻すんですが、
一瞬コンマ1秒ぐらい動画と動画の間に切れ目ができませんか?
これをどうやって回避したらいいのか悩んでいるのですがわかりません。。。

FlvPlaybackは使わずに、netStreamでやった場合の、
ループ時の途切れをなくす方法で、無理やりでもいいので、
綺麗なループを構成する方法ってないのでしょうか。
574Now_loading...774KB:2009/06/16(火) 03:21:39 ID:tHdNP/W9
AS3.0です。
クラスの生成について、通常は以下のように記述しますが、

var mc:MovieClip = new MovieClip();

var mc:MovieClip = new MovieClip;

のように()の無い、記述をみるときあります。
でも問題なく生成されているようです。

この()の無い記述方法って問題でしょうか?
どうぞ宜しくお願いします。
575Now_loading...774KB:2009/06/16(火) 20:40:22 ID:Fcq52+xB
このフレームが表示されたら○○シーンの○○フレームに移動ってのはどう書けばいいですか?

これだと情報すくないですか?
576Now_loading...774KB:2009/06/17(水) 03:11:14 ID:f7nO019S
AS3.0です。 ”TextAreaに書き込みした後にEnterキーで送信” という動作を実現させたいんですが、
Enterキーを押したらTextAreaに改行が書かれてしまい困ってます。
EnterキーだけTextAreaに書き込ませないようにすることって可能でしょうか?

(備考

・ TextAreaに書き込みをしたいのでEnterキー以外のキーイベントはTextAreaに届けたい。
・ TextAreaで改行を入れたくても出来なくなりますが、これは構いません。
・ TextAreaをMovieClipの子要素として設置し、EnterキーのキーイベントをこのMovieClipで受信し、
  EnterキーのキーイベントがTextAreaには通知されないように出来たら理想的です。
  ( ただしEnterキー以外のキーイベントはTextAreaに通知する )

なお、”TextAreaに改行が書き込まれた直後にすぐ改行を消す” というのはみっともないのでNGでお願いします。^^;
577Now_loading...774KB:2009/06/17(水) 04:07:04 ID:g883IzBj
>>574
var mc:MovieClip = new MovieClip();
が正しい書き方。
下はだめ。下の書き方している方いるの?
もし本でそういう書き方しているのがあったら
投げ捨てろ。
>>575
バージョンを書け。
578Now_loading...774KB:2009/06/17(水) 04:18:36 ID:+jYbYnPI
>>576 みっともないのでNG

アンタのコードの美しさを誰かが審査するの?
(コンクール用?)

一応ヒント:multiline
579574:2009/06/17(水) 04:27:02 ID:PRzCvq1B
ありがとう。本を投げ捨てますw。
580Now_loading...774KB:2009/06/17(水) 04:31:30 ID:7219CCH/
>>577
バージョンというと AS1.0&2.0ですかね?
581さよなら茸俊輔:2009/06/17(水) 11:17:39 ID:PRzCvq1B
>576
これでどうかな?

my_txt.addEventListener(Event.CHANGE,workline);
function workline(evt:Event):void{
my_txt.text = my_txt.text.split("\n").join("").split("\r").join("");
};
582576:2009/06/17(水) 14:24:34 ID:f7nO019S
>>578
コードの美しさではなく画面のちらつきが出るのでやりたくはないんです。
今作っているFlashは自分のみが使うFlashなのでコンクール用ではありません。

今回のようにフォームに書いたものをEnterで送信したい場合というのは今後も
使いそうなので今のうちによりよい書き方を知っておきたいと思い、質問させて頂きました。

>>581
ありがとうございます。 でもその方法は>>576に書いた通り、
”改行が書かれた後に改行を消す” という処理になるので使いたくないんです。
(改行が書かれた後に消す処理なら自分で書けます)
583576:2009/06/17(水) 14:29:14 ID:f7nO019S
>>578

>一応ヒント:multiline

これはシングルラインモードにすればいいという提案だと思うのですが、
テキストエリアに改行を含む文字列をコピペで貼り付ける場合に困るので
multilineモードは変えられません。
584Now_loading...774KB:2009/06/17(水) 14:53:58 ID:JKdBbwNh
>>583
3.0ならtextInputでキャンセルできんじゃなかったかな?
改行コードが\nとしてこんな。コピペの場合は考えてねー

textArea.textField.addEventListener(TextEvent.TEXT_INPUT,func)
function func(e:TextEvent){
if(e.text=="\n")e.preventDefault();
}
585さよなら茸俊輔:2009/06/17(水) 15:02:46 ID:PRzCvq1B
>>584
なるほど。
586576:2009/06/17(水) 18:42:23 ID:f7nO019S
>>584
おお、まさにこれです! 今後ずっと使います、どうもありがとうございました!
587Now_loading...774KB:2009/06/17(水) 20:52:36 ID:ouB6d/Ft
下のスクリプトで、r=1、r=2のif式をまとめたいのですが、
if (a == 100){
if (b == 20 && c < 6 || b == 20 && c > 5 || b == 30 && c < 12 ){
r = 1;
}else if (b == 30 && c > 11 || b == 40 && c < 2){
r = 2;
とすると、エラーになってしまいます。昔、数学を習ったときに、()の上位に{}を使うとかあったのですが、それと同じように、別のカッコを使用する必要があるのでしょうか?
どなたか、助けてください。

var a:Number = 100; // 100か200か300か400の整数値をとる
var b:Number = 20; // 20か30か40の整数値をとる
var c:Number = 1; // 1から20の整数値をとる
var r:Number = 0; // 整数値

if (a == 100){
if (b == 20 && c < 6 ){
r = 1;
}else if (b == 20 && c > 5){
r = 1;
}else if (b == 30 && c < 12 ){
r = 1;
}else if (b == 30 && c > 11 ){
r = 2;
}else if (b == 40 && c < 2 ){
r = 2;
}
}
else if(a == 200){
:
//以下続く
}
588Now_loading...774KB:2009/06/17(水) 23:35:05 ID:HHR/P1RR
>>587
aとbはまとめられないかな

switch (a + b)
{
 case 120 :
 if (c != 6)
  r = 1;
  break;
 case 130 :
  (c < 12) ? r = 1 : r = 2;
  break;

…こんな感じでいけないかな
589Now_loading...774KB:2009/06/18(木) 06:32:58 ID:DjvGDFqI
ECMAscript5.0が制定されたようですが。
将来ActionScriptはECMAscript5.0に準拠するのでしょうか?

僕個人は、もうJavaにしちゃえと思っています。
590587:2009/06/18(木) 06:43:12 ID:TUD0gFWe
>>588さま

ありがとうございます。
switchを使うわけですね、想像できませんでした。。。
ちょっと、チャレンジしてみます!
591Now_loading...774KB:2009/06/19(金) 00:53:53 ID:M0BGgR/B
WinXP-ProのFlashCS3(AS2.0)です。
キーコードの取得で悩んでいます。

myListener.onKeyDown = function () {}内で
pressedKey = Key.getCode();
trace ("Data= " + Key.getCode())

と書いたところキーを押しても何も反応しませんでした。しかし、Stage上の
ダイナミックテキストをクリックすると(例えばFキーの場合)、Data= 70 
と出力されます。

つまり、一旦ダイナミックテキストをクリックすれば良いですが、毎回クリック
するのは面倒です。これを回避する方法はありますか?

なお、「ActionScript 2.0 キーコード ステージ クリック」でググりましたが適当な
解決策が見つかりませんでした。
592Now_loading...774KB:2009/06/19(金) 01:46:31 ID:YhS+STMP
フォーカスを移動させればいいんじゃね。
593Now_loading...774KB:2009/06/19(金) 02:27:49 ID:M0BGgR/B
>>592
さんきゅうです。
ステージのどこか適当なところをクリックすればOKになりました(ただし、プレビューでは不可)。
594Now_loading...774KB:2009/06/19(金) 03:27:23 ID:BVxvXNwZ
まだまだ2.0は健在ですね。。
595Now_loading...774KB:2009/06/19(金) 09:50:40 ID:uZU0GFf4
>>594
要は目的と仕様次第。
単発で継続性が無い案件や「手っ取り早く作ればいいや」といったものにはAS2.0が向いている。
596Now_loading...774KB:2009/06/19(金) 12:13:07 ID:BVxvXNwZ
なるほど、さくっと作るには2.0の方が早いんですね。
597Now_loading...774KB:2009/06/19(金) 12:19:47 ID:BVxvXNwZ
イベントについて伺います。

[added] や [click] [enterFrame]
など、「イベント」と言われるものがありますが、
これらは文法的になんなのでしょうか?

Eventクラスのプロパティではないようです。
メソッドでもプロパティでも、ましてはクラスでもないように思います。
単なる概念でしょうか?
598Now_loading...774KB:2009/06/19(金) 12:26:43 ID:X6OmJ6T9
>>593
プレビューでキー関係の確認したい時は、キーボードショートカットを無効にするんじゃ
599Now_loading...774KB:2009/06/19(金) 12:51:00 ID:D40bmBBc
>>597
単なる概念というか、名前。イベント名
「クリックしたときに発生するイベント」の事は「clickイベント」と呼ぶようにしているだけ
イベント名無いと、「あのイベント」じゃ通じないから名前つけてる。文法がうんぬん以前の単純な話

あと、3.0だったら、大抵はイベントオブジェクトのtypeプロパティにこの名前と同じ文字列が格納されてんじゃないかな
600Now_loading...774KB:2009/06/19(金) 14:27:27 ID:1MLr1H8Q
おせわになります。

tweenerをつかって スケール0、透明度0のとこから、
それぞれ100にして、徐々に出現し、拡大するようにしたいんですが、
下記のように書いたんですが、拡大がムービクリップの中心からじゃなく
左上から拡大されます。 これは、なにかパラメータが必要なんでしょうか?

よろしくお願いします。

Tweener.addTween(logo,{_alpha:100, _xscale:100, _yscale:100, time:2,base:logo});
601Now_loading...774KB:2009/06/19(金) 14:33:23 ID:BVxvXNwZ
599さん
疑問が解けましたありがとうございます。
602600:2009/06/19(金) 16:21:11 ID:1MLr1H8Q
ちなみAS2になります
603Now_loading...774KB:2009/06/19(金) 16:57:44 ID:BVxvXNwZ
tweenerは良く知らないけど、単にMovieClipの基準値が左上になっている
だけだとか??

ライブラリの対象のムービークリップを開いて 「+」の位置に
ムービークリップの中心を合わせる。とどう?
604Now_loading...774KB:2009/06/19(金) 21:54:54 ID:nxOF15/L
CS3のAS2.0でWinXPです。
配列の要素の出現頻度はどのようにしたら調べられますか?

試しに arr = [a,t,a,t,t,t,d,a]; として、これを arr.sort () で並び変えると
[a,a,a,d,t,t,t,t]となったのですが行き詰まりました。

お助け願います。


605604:2009/06/19(金) 21:57:50 ID:nxOF15/L
理想とする出力結果は、
a:3個
d:1個
t:4個

な感じの一覧です。
606Now_loading...774KB:2009/06/19(金) 22:37:57 ID:MHYXg3rf
>>605
数えりゃいいじゃんw
forで回して、連想配列に要素ごとのカウンタ持てば良いかと。
{a: 3, d: 1, t:4}みたいになるように。

607604:2009/06/19(金) 23:11:29 ID:nxOF15/L
>>606
すいません。ググりましたがAS2.0でのハッシュの例が見つかりません。
手元の本でもハッシュの例は皆無です。

どういう手順になりますか?
608Now_loading...774KB:2009/06/19(金) 23:23:32 ID:DXrYspiy
>>604
なんかそれどっかで見たことある。
毎年出されてるどこぞの学校の課題かなにかかw

var arr:Array = new Array("a","t","a","t","t","t","d","a");
var rel:Array = new Array();
for (val in arr) {
if ( isNaN(rel[arr[val]]) ) rel[arr[val]] = 0;
rel[arr[val]] += 1;
}
for (val in rel) trace(val + ":" + rel[val] + "個");
stop();

表示される順番があれだけど、最初にarrをソートしとけばいいと思われ。
609604:2009/06/20(土) 00:02:33 ID:bW5JhHYP
>>608
有難うございます。
(前後しますが)文法はこれから勉強します。
610Now_loading...774KB:2009/06/20(土) 00:14:08 ID:JqPLISCS
配列って奥が深いね。
611Now_loading...774KB:2009/06/20(土) 01:34:52 ID:3JC1KUdV
>>607
ハッシュをObjectと読み替えて調べなおしてくれ
612Now_loading...774KB:2009/06/20(土) 03:24:35 ID:obbefLOK
例えばフレーム2のボタンAからフレーム4に飛ばす、フレーム2のボタンBからフレーム5に飛ばすのはどうすればいいですか?
613Now_loading...774KB:2009/06/20(土) 03:41:05 ID:+ix0gCaV
>>612
だからバージョンを書けって

てか基本的すぎる質問はこのスレじゃスルーされるぞw
超基本スレ行けよ
614Now_loading...774KB:2009/06/20(土) 03:54:48 ID:obbefLOK
3.0っす
ボタンをレイヤー化しないでやりたいんす
言ってる意味分からないかもしれませんが、俺にもgotoAndPlayとかaddEventとかどっちがなんなのって感じですわ
615Now_loading...774KB:2009/06/20(土) 06:46:34 ID:JqPLISCS
>>608みたいなロジックに強くなりたい。
市販のAS本とかは、クラスの説明を兼ねたサンプル集が殆ど。。

何か良い勉強法とかあるだろうか。。
616Now_loading...774KB:2009/06/20(土) 11:50:22 ID:SpeWw8ff
「どれかと一致した場合」という条件式はありませんか
例えば以下のような場合です

var hoge:String; //hogeにはアルファベット1文字が入る

if (hoge == "A" || hoge == "C" || hoge == "E" || hoge == "G") {
処理
}

上の例は4つですが、もっと沢山ある場合もあります。
617Now_loading...774KB:2009/06/20(土) 12:28:10 ID:3ebHUBFA
>>616
3.0ならRegExpで正規表現でいけるかな
それ以外は、その例だったらindexOfでチェックしてもいけんじゃないかな
if(hoge.indexOf("ACEG")>-1){
//処理
}
618Now_loading...774KB:2009/06/20(土) 12:30:11 ID:ZmhOiM2+
>>616
正規表現でぐぐれ
619Now_loading...774KB:2009/06/20(土) 15:12:26 ID:JqPLISCS
文法について質問です。

var shape:Shape = new Shape();
shape.graphics.beginFill(0x0000FF);

上の graphics なのですがこれは
shapeオブジェクトのプロパティでしょうか?
それともshapeの子になるgraphicsクラスのオブジェクトでしょうか?
620Now_loading...774KB:2009/06/20(土) 17:08:09 ID:BYvVLEBq
>>619
>shapeオブジェクトのプロパティでしょうか?
そう
>それともshapeの子になるgraphicsクラスのオブジェクト
これもそう
丁寧に書くと

var shape:Shape = new Shape();
var g:Graphics = shape.graphics;
g.beginFill(0x0000FF);

Shapeのgraphicsには、Graphics型のインスタンスが格納されてる
621Now_loading...774KB:2009/06/20(土) 17:18:52 ID:JqPLISCS
>>620さん
理解を深めることできました。ありがとうございました!
622Now_loading...774KB:2009/06/20(土) 17:45:10 ID:3PlVX2Bf
AS3で外部flaと繋げるにはどうすれば?
623Now_loading...774KB:2009/06/20(土) 20:04:42 ID:GF94hQeU
>>622
一度パブリッシュしてswfファイルにする必要がある。
swfファイルで別のswfファイルをロードして実行したり、swfファイル同士でプロセス間通信もできる。
624Now_loading...774KB:2009/06/20(土) 21:07:10 ID:3PlVX2Bf
>>623
そして、
addEventListener(MouseEvent.CLICK, jampPage1);
とかですか?
625Now_loading...774KB:2009/06/20(土) 21:50:06 ID:AhKQ2q8x
new BitmapDataで800*600程度のビットマップを20個ほど作った場合
CPU負荷自体はたいして変わらないでしょうか?
ビットマップの大量作成によって起こる弊害などがありましたら教えていただきたいです宜しくお願いします。
626Now_loading...774KB:2009/06/20(土) 21:59:18 ID:3JC1KUdV
>>625
メモリを喰う。CPU負荷はその画像をどう使うかしだい。
627Now_loading...774KB:2009/06/20(土) 22:01:23 ID:AhKQ2q8x
>>626
回答ありがとうございます
使わなければ負荷はありませんよね?メモリはかなり喰いますかね・・?
628Now_loading...774KB:2009/06/20(土) 22:15:18 ID:3JC1KUdV
>>627
パフォーマンスモニタみながら自分で試してみようよ。
どのくらいの負荷が許せるのか、どのくらいのメモリ消費を許容できるのかは
あなたにしかわからないのだから。
629Now_loading...774KB:2009/06/20(土) 22:17:58 ID:AhKQ2q8x
>>628
そうですね頼ってしまってすみません
一応プログラムを組んでで確かめてみました
Bitmap800*600を20枚で大体30MBくらいの使用でした
このくらいの使用だと今時のPCだったら大丈夫ですかね
630Now_loading...774KB:2009/06/21(日) 10:57:15 ID:P1TsPRsu
http://yasurageruheya.web.fc2.com/game_data/crickShot.html
このようなパスワード機能をAS2.0で実装したいのですが、全く手が出ません。
escape();でもなさそうなので・・・・誰か助けて下さい
631Now_loading...774KB:2009/06/21(日) 11:15:37 ID:2UUwLVaN
変数がプラスだったら1
ゼロだったらゼロ
マイナスだったら-1を手に入れたいんだけど
そういう関数って標準であったりしますか?
632Now_loading...774KB:2009/06/21(日) 11:47:22 ID:IsrLq636
>>631
無い。
自分でユーザー定義関数作れ。
633Now_loading...774KB:2009/06/21(日) 15:03:38 ID:2qdcdkGe
関数にしなくても一行にまとまる程度だけど
634Now_loading...774KB:2009/06/21(日) 15:29:14 ID:IsrLq636
よく使う処理ならその一行を打ちこむのがめんどくさい。
635Now_loading...774KB:2009/06/21(日) 15:35:00 ID:jXtbfvJK
よくは使わないなw。
636Now_loading...774KB:2009/06/21(日) 17:51:57 ID:wFLEAXtt
copypixelsってAS2とAS3で描画の速度差はありますか?
637Now_loading...774KB:2009/06/21(日) 20:41:56 ID:jXtbfvJK
カスタムクラスの静的プロパティの役割がよくわからんのだが、
改変されないプロパティという考えでOK?
638Now_loading...774KB:2009/06/21(日) 21:19:45 ID:I19S3U6M
全然駄目
プロパティはインスタンスに属するパラメータ
静的プロパティはそのクラス全体で共有したい定数や列挙の変わり
用途がわからないレベルなら無理して使う必要無いよ
639Now_loading...774KB:2009/06/22(月) 01:07:44 ID:+k5dX5up
なるほど。ありがとうございます。一応勉強したいので。
でも、カスタムの静的プロパティは、小規模な制作で使われることあまり
なさそうですね。
640Now_loading...774KB:2009/06/22(月) 08:06:18 ID:hQxRMFFI
>でも、カスタムの静的プロパティは、小規模な制作で使われることあまり
>なさそうですね。

そんなことないですよ。短いプログラムでも有効に使うことができるなら便利です。
641Now_loading...774KB:2009/06/22(月) 09:18:36 ID:vNQCW6o5
あれ、静的プロパティは改変できるんじゃないっけ、
改変できないのは定数にした場合だけじゃね。
642Now_loading...774KB:2009/06/22(月) 09:42:46 ID:vNQCW6o5
AS3だとDictionaryがハッシュとか連想配列にあたるクラスとしてあるよ。
別にオブジェクトでもいいんだけど。

http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/utils/Dictionary.html
643Now_loading...774KB:2009/06/22(月) 09:50:22 ID:vNQCW6o5
>>631
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/Array.html#sort()

どういう目的で使うか分からないけど、このカスタムソートの例のように
条件判定を使って作ればいいんじゃない。
644Now_loading...774KB:2009/06/22(月) 10:07:52 ID:vNQCW6o5
Bitmapがでかいサイズで20枚も作成しなきゃいけないってどんな効果のため?
メインになる画像が切り替わるような効果なら、2枚Bitmapを用意して中味のデータだけ
入れ替えるとかのほうがいい気がするけど。
645Now_loading...774KB:2009/06/22(月) 10:20:42 ID:hQxRMFFI
>>631,643
単純にifで比較した方がらくかなぁと思った。

abs使って正規化すりゃいいかと思ったけど0除算を切り分けないとダメだし、
Nuber型で0との判定って面倒だし。
646Now_loading...774KB:2009/06/22(月) 10:36:49 ID:daqf221F
>>631
AS3はBoolean型をint型にキャストできないのが不便だよな。

answer = (value > 0) - (value < 0);

多くのプログラム言語は、これでいけるんだけどね。
符号が反対だったり、キャストを明示的に記述する必要があったりするけれど。
647Now_loading...774KB:2009/06/22(月) 11:22:05 ID:qnWwzTfO
普通にキャストできるんじゃね?
648Now_loading...774KB:2009/06/22(月) 19:04:25 ID:hQxRMFFI
answer = Number(value > 0) - Number(value < 0);
こうか、なるほど。
649646:2009/06/22(月) 19:13:40 ID:daqf221F
answer = int(value > 0) - int(value < 0);

ああ、できたのか。
as intでキャストすると、

answer = ((value > 0) as int) - ((value < 0) as int);

これは常に0になるので、ダメかと思った。
650Now_loading...774KB:2009/06/22(月) 21:24:02 ID:4IGZaPuU
AS2/FlashCS3 です。
よろしくお願いします。


ボタンをいくつか置いています。
タブで送っていくと、それらのボタンに黄色い枠が付き、機能してしまうので、
その動作を無効としたいと考えています。

_focusrect = false;

を記入し、黄色い枠と機能は無効にできたのですが、
ボタンインスタンスを使っているためか、
オーバー時の表示は有効のままです。
(タブで送ると、順次ボタンインスタンスのオーバーのイメージが表示されます)

タブで送っても、マウスオーバー時の表示をしないようにはできますか?
651Now_loading...774KB:2009/06/23(火) 00:19:40 ID:K75HSeO8
CS3のAS2.0でWinXPです。getURLの動作で質問です。

本に載っているボタンアクション
on (press) {
_root.getURL(t1,"_blank");// t1はフォームからの入力(実際のURLは下と同じ)
}
を実行すると問題なく目的のHPが見れるのですが、下の自作の記述
だと警告http://uproda11.2ch-library.com/183512M6m/11183512.jpg が現れます。
on (press) {
urlStr = "http://www.yahoo.co.jp/";
_root.getURL (urlStr,"_blank");
}

動作的には全く同じだと思うのですが、何が警告の原因でしょうか?
652Now_loading...774KB:2009/06/23(火) 00:24:05 ID:R/n5HlM7
>>650
Rootでthis.tabChildren=false;は?
653Now_loading...774KB:2009/06/23(火) 10:55:21 ID:JTKzWMOV
型変換について伺います。

instance.addEventListener(MouseEvent.CLICK, focusMe);
function focusMe(event:MouseEvent) {
stage.focus = InteractiveObject(event.target)
}
InteractiveObject(event.target)
event.target as InteractiveObject;

上のソースで、InteractiveObject(event.target)
の意味が良くわからず、InteractiveObject()というメソッドはないし、、。いろいろ調べたらキャストらしいことがわかりました。

InteractiveObject(event.target)の代わりに
event.target as InteractiveObject

におき変えても同じ結果が返ってきました。
そこでで質問ですが。クラス名(別のクラスのオブジェクト)でキャストになるのでしょうか?
654Now_loading...774KB:2009/06/23(火) 11:19:07 ID:j4cVJZ7x
>>653
うん。キャストになる
655Now_loading...774KB:2009/06/23(火) 11:56:03 ID:eIU1GqlA
>>651
ローカルからネットにアクセスしようとしてるから
サーバに上がってれば警告は出ない
656650:2009/06/23(火) 12:38:04 ID:qH6japS+
>>652
ありがとうございます!!
上手くいきました。
657Now_loading...774KB:2009/06/23(火) 13:01:03 ID:TlkRCaxL
>>655
レスありがとう。
しかし、本に載ってる方も自作と同じくローカルで動作させています。
また自作の方も、時々正常にYahooにジャンプします(再現性が無い)。

ローカルでの挙動の違いは何由来なのでしょうか?

658Now_loading...774KB:2009/06/23(火) 15:03:25 ID:pttUBzIT
初心者ですが、よろしくおねがいします。
いまローディングを作っています。

下記のように参考書を見ながら、
actionscriptを組んでいるんですが、
通常、一回データが読み込まれれば、2回目はローディングの必要がなく
すぐコンテンツを閲覧できるようになるとおもうのですが、
なんどアクセスしても、ローディング画面になってしまいます。
何度も見直したのですが、どこが間違っているのか迷宮入りです。
お知恵をおかしいただけないでしょうか?
よろしくお願い致します。

1frame
-----
stop();
init = function () {
c = 0;
gotoAndPlay(2)

};
init();
659Now_loading...774KB:2009/06/23(火) 15:04:33 ID:pttUBzIT
続き。
2frame
-----
this.stop();
loading = function () {;
var _loc6 = _parent.getBytesTotal();
var _loc4 = _parent.getBytesLoaded();
c = c+1;
var _loc2 = Math.min(Math.ceil(_loc4/_loc6*100), c);
var _loc3 = Math.ceil(_loc2);
title.txt = _loc3;
if (c == 100) {
gotoAndPlay(3)
}
else if(c<100){
this.onEnterFrame = loading;
}
};
this.onEnterFrame = loading;
660Now_loading...774KB:2009/06/23(火) 18:25:30 ID:eIU1GqlA
>>657
まったく同じ状況で比べてるのかな?
たとえば、片方はブラウザ、片方はプレビューとかってことはない?
HTMLまで同じ?
661Now_loading...774KB:2009/06/23(火) 18:44:23 ID:LHq3OHgC
>>660
はい。全く同じです。
ブラウザ(FireFox)でもプレビューでも同じ表示になります。
662Now_loading...774KB:2009/06/23(火) 20:23:16 ID:7A/ehzL4
WinXP+AS2.0+CS3 です。
キーの認識(キーコード)で質問です。

myListener = new Object ();
myListener.onKeyDown = function () {
pressedKeyT = String.fromCharCode (Key.getCode ());
Key.addListener (myListener);

上の記述で「-」(マイナス)キーを押すと、最初pressedKeyTはtrace()で
マイナスが出ます。ところが、-A-という感じでもう一度マイナスを押すと
1/2(1文字で1/2。特殊文字?)が表示されます。

このせいでキー入力判定が出来ません。何故1/2が出るのでしょうか?
663Now_loading...774KB:2009/06/23(火) 20:30:52 ID:pttUBzIT
AS3で書いていて、下記のエラーがでます。
なにが原因なのでしょうか?

flash.display.MovieClip をサブクラスとする必要があります。
664663:2009/06/24(水) 00:39:27 ID:4lO6wOlM
ムービクリップの設定は、
クラスが、a
基本クラスが、flash.display.MovieClip に設定していて、

a.asは、

package
{
import flash.display.*

dynamic public class a extends MovieClip
{

public function a()
{
return;
}// end function

}
}

です。 
よろしくお願い致します。
665Now_loading...774KB:2009/06/24(水) 03:15:34 ID:fk/kCGIz
質問です。
ゲームの音楽と効果音の再生で行き詰まりました。
音楽(Music.wav)を再生中に効果音(Shot.wav)をならそうとすると、効果音が1秒くらい遅れて再生されてしまいます。
ググりましたが解決方法が見つからないので誰か助けて下さい。

以下具体的なことです。
音楽ファイルはFlashで埋め込んでいます。設定で圧縮などは一切してません。

//音楽
var music1:Sound=new Music()
music1.play(0)

//効果音
var shot1:Sound=new Shot1()
stage.addEventListener(MouseEvent.CLICK, clicked)//クリックしたら効果音ならす
function clicked(e){
shot1.play(0);//これが1秒くらいおくれる
}

ただし、music1.play(0)をコメントアウトして効果音だけにすれば、遅れは気になりません。
また、それぞれをMP3にしたり、ビットレートを変更してもだめでした。
環境はFlashCS4です。

よろしくお願いします。
666662:2009/06/24(水) 03:18:25 ID:8kVhzuVf
自己解決しました。
1/2が出るのは仕方ないとして、これを逆に利用して後の処理をしました。
667Now_loading...774KB:2009/06/24(水) 03:38:54 ID:6oa1KtGg
CS3のAS2.0でWinXPです。
ブラウザウインドウが閉じないので困っています。

ボタンアクションで下を書いたのですが何も変化がありません。
on (release) {
getURL ("javascript:window.close();");
}

ほんで、代わりにプロジェクタを閉じようと下を書いたのですが
これも駄目でした。
fscommand("quit", true);

ブラウザはIE6.0とFireFox3.10ですが両方駄目です。
アドバイス願います。
668Now_loading...774KB:2009/06/24(水) 06:51:40 ID:EP9n5K0P
すみません。
Spriteから派生したクラスの上にビットマップをaddChild()で表示しています。

SWFを直接実行している時など、SWF内で指定した解像度の縦横比と異なるサイズにすると
backgroundColorで指定した色の縁が出来ます。(まぁ、これはいいのですが)
ビットマップの座標を動かして画面の外まではみ出した場合に、その縁の部分までは表示されてしまします。

はみ出した部分を表示させたくない場合はmaskを設定するしかないのでしょうか?
単純にはみ出した部分は非描画領域という設定は出来ないでしょうか?
669Now_loading...774KB:2009/06/24(水) 07:08:32 ID:EP9n5K0P
書き忘れ・・・ ↑の質問は stage.scaleMode が SHOW_ALL の場合です。
670Now_loading...774KB:2009/06/24(水) 11:25:07 ID:/Gey7z6u
6
671Now_loading...774KB:2009/06/24(水) 11:48:06 ID:/Gey7z6u
>>665
>>352

>>664
そのカスタムクラスが原因とは思えない。fla側のコードが問題ありそう。
ちなみに
dynamic public class a extends MovieClip

public dynamic class a extends MovieClip

>>668
非描画領域という設定、そんなもの無いと思う。あれば俺も知りたい。
俺なら、removeChild()する。
672Now_loading...774KB:2009/06/24(水) 14:21:07 ID:EP9n5K0P
>>671
>非描画領域という設定、そんなもの無いと思う。あれば俺も知りたい。
やっぱりmask使うしかないですか・・・
古いPCで動かしてみたところちょっと重い様なので単純な矩形のクリッピングが出来ればと思いました。

>俺なら、removeChild()する。
画面(デフォルトのサイズ)から半分だけはみ出している状態とか、画面外から中にゆっくり入ってくるような
アニメーションをさせているので全体を非表示にするという訳ではないのです。 説明不足ですみません。
673Now_loading...774KB:2009/06/24(水) 19:11:44 ID:v65kgGKe
actionscriptで昼の風景画像を夜っぽくしたいのですがどうしたらよいでしょうか?
674Now_loading...774KB:2009/06/24(水) 19:37:31 ID:/Gey7z6u
>>673
さすがに無理。
675Now_loading...774KB:2009/06/24(水) 20:24:08 ID:U9aqDpPS
>>673
画像の上に黒い半透明なオブジェクトかぶせて暗くするとかじゃダメなの?
676Now_loading...774KB:2009/06/24(水) 20:47:21 ID:Ydgu0Edx
以前、たしかPhotoshopスレで同じような質問があったが
レタッチソフトであっても昼を夜にするのは難しいという流れだった。
ASでは>>674だろう。
677Now_loading...774KB:2009/06/24(水) 21:11:27 ID:UsBQNyxt
********.addEventListener(MouseEvent.CLICK, page1);
function page1(event:MouseEvent):void {
var ul1:Loader = new Loader();
var theURL1:URLRequest = new URLRequest("********.swf");
ul1.load(theURL1);
addChild(ul1);
}

これすれば、外部swfが表示されるげど、今のボタンも表示されるんですよね。。。
解決策ないですか?
678Now_loading...774KB:2009/06/25(木) 01:15:54 ID:afVqQcyJ
CS3(AS2.0),WinXP-Proです。

自分が押したテンキーの数字キーを表示したいのですがうまくいきません。
num0 = String.fromCharCode (Key.getCode ());
trace(num0);
では、例えば5を押すとeが出力されます。

入力した数字をそのまま表示するにはどうしたら良いでしょうか?
679Now_loading...774KB:2009/06/25(木) 06:46:11 ID:xzAniQ/4
CS4(AS3)

ASはこれから本格的に学ぶ予定の者です。
今イライラ棒のようなゲームを作っていて
クリアまでの時間を競うゲームにしたいのですが、ちょい質問。

ゲームをクリアすると送信フォームを表示し、エントリーネームなどを記入してもらい
getTimerで取得したクリアまでの時間を送信するというフォームにしたいのですが
ASだけで作ることは可能ですか?

他に学ばないといけない知識ある?
680Now_loading...774KB:2009/06/25(木) 07:15:50 ID:6yWPed9p
>>ゲームをクリアすると送信フォームを表示し、エントリーネームなどを記入してもらい
getTimerで取得したクリアまでの時間を送信するというフォームにしたいのですが

ASだけで作れるよ。
しかし、送信した後のデータをサーバーのランキングに登録するとかするんならCGIやPHPなどの
サーバー側で動く言語を知らないとだめだけどね。
681Now_loading...774KB:2009/06/25(木) 07:51:14 ID:xzAniQ/4
>>680
なるほど、ありがとう!

ASでそこまでできたら、PHPも学ぼうと思います。
一週間でできるかな?早く作りたい!

色々作るのは楽しいですね(。・_・。)ノ
682Now_loading...774KB:2009/06/25(木) 07:54:56 ID:xzAniQ/4
あ、あと気になる点が…

getTimerで取得した時間を送信すると書きましたが
この時間を書き換えられたりしてしまう恐れはないですか?
(クリアするまでの不正は別として)
683Now_loading...774KB:2009/06/25(木) 08:07:55 ID:4O2esz+Z
>>682
チェックサムみたいなのも併せてサーバ側に送るといい。
getTimer値に種々の計算式で算出した値も送り、サーバ側で正規の記録かチェックするなど。

どういう利用形態なのか分からないけれど、不正を心配する様な代物なのだろうか。
そこまでユーザ数が多くなる事を想定しているなら、記録の同時書き込みを心配した方がいい。
複数のユーザから記録を同時に送信されると、ランキングデータが壊れる可能性がある。
排他を行う必要があるね。
684Now_loading...774KB:2009/06/25(木) 08:09:42 ID:6yWPed9p
>>この時間を書き換えられたりしてしまう恐れはないですか?

それは送信中のデータを第三者が改ざんするっていうこと?
多分不可能ではないと思う。
685Now_loading...774KB:2009/06/25(木) 08:18:46 ID:apsWHoJO
>>682
とっとと作るといいよ
今のレベルならこんなところで聞いているより
本なり知識を詰め込んだ方が100倍マシ

まずは1ヶ月、2ちゃん止めることからどうぞ
686Now_loading...774KB:2009/06/25(木) 10:59:05 ID:+gU5DwH5
>>677
>外部swfが表示されるげど、今のボタンも表示されるんですよね。。。
そのコードだと、ボタンの上にswfが表示されるはずで、それは意図どおりでないということでしょうか?

もし、ボタンを読み込まれたswfの上に乗せる場合は、
ボタンをステージに直接設置するのでなく、ライブラリのシンボルからコードを配置します。
@ライブラリにあるボタンのシンボルを右クリックしてリンケージをクリック。
AActionScriptへの書き出しのラジオボタンをチェックして、クラス名を記入します。ここでは、[Mybutton]と記述。

Bソースを以下に修正してください。
::::::::::::::
var btn:Mybutton = new Mybutton();
addChild(btn);
btn.x=100//ボタンの位置(任意の位置に変更してください)
btn.y=50//ボタンの位置(任意の位置に変更してください)
btn.addEventListener(MouseEvent.CLICK, page1);
function page1(event:MouseEvent):void {
var ul1:Loader = new Loader();
var theURL1:URLRequest = new URLRequest("*******.swf");
ul1.load(theURL1);
addChildAt(ul1,0);
}
::::::::::::::

上記の「addChildAt(ul1,0)」の2番目の引数の値の設定を変えることで
swfのレイヤー位置を変えることができます。
687Now_loading...774KB:2009/06/25(木) 14:37:49 ID:/52vp7f7
CS4/as3です。

as2時代にはステージ上に適当に配置したmcを非表示にする場合、

for ( var prop in this ){
this[prop]._visible = false;
}

としていましたがas3になってから出来なくなりました。

for ( var prop:String="" in this ){
this[prop].visible = false;
}

何が間違っているのでしょうか?
688Now_loading...774KB:2009/06/25(木) 16:34:21 ID:MuQICo0T
AS2で音声プレイヤーを作っているのですが、
拡張子".wax"のファイルを読み込んで再生できますか?
689Now_loading...774KB:2009/06/25(木) 16:51:26 ID:+gU5DwH5
外部音源をswfに読み込んで再生できるのはmp3のみ。だったはず。
690Now_loading...774KB:2009/06/25(木) 17:04:31 ID:+gU5DwH5
ドキュメントクラスという用語ありますけど。
FLASHでは、メインのタイムラインをカスタムクラスに置き換えるような仕組みのことをさしています。

でも、ドキュメントクラスって一般的にありそうな用語ですよね。
一般的にはどのような意味があるのでしょうか?
(検索かけても当てはまるものが見つからなかったので。。)
691Now_loading...774KB:2009/06/25(木) 17:58:14 ID:4WrVVrLj
>>686
>>>677
>>外部swfが表示されるげど、今のボタンも表示されるんですよね。。。
>そのコードだと、ボタンの上にswfが表示されるはずで、それは意図どおりでないということでしょうか?

アドバイスありがとうございます
そうですね。新しいswfに行きたいのです!
692Now_loading...774KB:2009/06/25(木) 19:30:56 ID:965vOMtG
>>678
多分thisじゃなくてMovieClip(this)にすればいけるかと思ったがうまくいかない。
代替えの案として

for (var i:uint=0;i<MovieClip(this).numChildren;i++){
MovieClip(this).getChildAt(i).visible=false;
}

で同じ処理はできる。
もっとスマートな書き方があるなら私も知りたいです。
693Now_loading...774KB:2009/06/25(木) 19:57:41 ID:+gU5DwH5
>>648

これいい勉強になるなあ。2.0はもう忘れてしまったのだけど。
692さんのというとおり、thisの意味が3.0と違うような気がした。
元のコードに近づけるには、thisの代わりに配列を定義して
for eachで処理させてみる必要ありそう。

他にいい案があれば誰か教えてください。

:::::::

var arr:Array = new Array()
for(var i:int =0 ; i<this.numChildren; i++){
arr.push(getChildAt(i))
}
for each (var prop in arr){
prop.visible = false;
}

:::::::

これを改良すると、以下になる。
692さんと全く同じコードですね。

:::::::

for(var i:int =0 ; i<this.numChildren; i++){
this.getChildAt(i).visible =false
}

:::::::
694Now_loading...774KB:2009/06/25(木) 20:18:08 ID:+gU5DwH5
あ、間違えた。
↑は648でなくて>>678さんあてね。
695Now_loading...774KB:2009/06/25(木) 20:31:35 ID:/52vp7f7
>>692
おー、なるほど!
DisplayObjectにaddChildしてるから
MovieClipの中を見渡しても無いわけですね・・・。
助かりましたm(_ _)m
696Now_loading...774KB:2009/06/25(木) 23:03:42 ID:x8HDYrgr
2.0でも3.0でもthisは基本的に変わらないと思うけど
2.0は最初から_rootが存在してるからthis=ムービークリップだと思いがちなのかね
697Now_loading...774KB:2009/06/26(金) 07:31:00 ID:bHKgsKCT
僕の勘違いかも知れないけど、2.0のthisには配列が含まれて
いるかも知れない。
でないと下の構文が成立しないと思った。

for ( var prop in this ){
}

でも、本当に勘違いかも知れないので(汗)詳しい人説明求む。
698Now_loading...774KB:2009/06/26(金) 08:37:57 ID:XO0mQ3fG
2.0だとオブジェクトの子にあたるオブジェクトに配列アクセス演算子でアクセスできるよ
699Now_loading...774KB:2009/06/26(金) 09:11:09 ID:bHKgsKCT
ありがとう納得しました。僕の勘違いでしたね。
2.0から3.0へのソース移行は、配列演算子にもちょっと注意しないといけないですね。
勉強になりました。
700Now_loading...774KB:2009/06/26(金) 17:43:00 ID:bHKgsKCT
switch caseの条件式なんですけど、勉強してたら下のコードをみつけた。

switch (event.keyCode) {
case Keyboard.RIGHT :
case Keyboard.LEFT :
var flag:Boolean = (event.type == KeyboardEvent.KEY_DOWN);
myShip.setKeyFlag(event.keyCode,flag);
break;
}

case Keyboard.RIGHT :
に対応する処理がないのですが、switchの条件式を使う意味が
あるのでしょうか?
switchの意味がよくわかってないのかも知れませんが、
お分かりのかたお教えください。
701Now_loading...774KB:2009/06/26(金) 19:18:28 ID:Yh1CKzWa
矢印の右か左を押したときにbreakまでの処理を実行させたいんじゃねーのかな?
if使ってorで書いた方がわかりやすそうな感じだけど
702Now_loading...774KB:2009/06/26(金) 19:25:38 ID:tcaZOOb9
書き出したPlayerのバージョンが異なるswfを読み込んでも、
特に連携する動作が無い場合は、問題は無いのでしょうか?
例えば、
バージョン8 AS2のswfに、バージョン9 AS3のswfをロード
バージョン9 AS2のswfに、バージョン9 AS3のswfをロード
など。
703Now_loading...774KB:2009/06/26(金) 19:26:36 ID:Yh1CKzWa
つーかそもそも下位バージョンから上位バージョンは読み込めねーんじゃねーかな
704702:2009/06/26(金) 19:32:33 ID:tcaZOOb9
なるほど、確かにその可能性がありますね。
ちょっと確認したところ、
外枠がver7 AS2のものだったようで、コード的にはver9 AS2では書き出せるようでした。
少し自分で調べてみます。
705700:2009/06/26(金) 21:08:14 ID:bHKgsKCT
なるほど。勉強になります。ありがとうございました。
706Now_loading...774KB:2009/06/27(土) 09:07:18 ID:qlXYEegB
ていうか、そのためのbreakだし。
707Now_loading...774KB:2009/06/27(土) 12:20:09 ID:X2LDNrCO
すみません。SpriteにCanvasをaddChild()したのですが何も表示されません。
同じCanvasを違うCanvasにaddChild()すると表示されます。
もしかしてSpriteにCanvasはaddChild()してはいけないのでしょうか?
708Now_loading...774KB:2009/06/27(土) 12:40:40 ID:5gYshdui
Canvasって何w
そのCanvasってのをaddChildしたSprite自体が表示リストに乗っかってねーんじゃねーの?
だったらSpriteをaddChildすりゃ済むんじゃねーのかな
709Now_loading...774KB:2009/06/27(土) 13:01:58 ID:X2LDNrCO
すみません。CanvasにはListとかがaddChildされてます。
SpriteにもsimpleButton等addChildして表示されています。
このSpriteにCanvasをaddChildしたら何も表示されません。
710Now_loading...774KB:2009/06/27(土) 16:46:50 ID:A5HwF1GI
>>709
その前に、ASのバージョンを教えてね。
711Now_loading...774KB:2009/06/27(土) 16:53:39 ID:58J3iLu3
>>710
addChildとかSpriteって言ってるんだから3じゃねーの?
712Now_loading...774KB:2009/06/27(土) 17:06:15 ID:A5HwF1GI
2にはaddChildとかSpriteないのか!ショック。

それにしても、Canvasには何が入ってんだろう?
しかもクラス表記だし。。
713Now_loading...774KB:2009/06/27(土) 19:07:52 ID:dE5rvld/
AS使ってデスクトップ画面をキャプチャすることってできるんでしょうか??
Flashで簡易的なデスクトップ共有ができないかなーって、、、できないよね。
714Now_loading...774KB:2009/06/27(土) 19:15:11 ID:n0v76gPO
>>713
Flash単体では無理だな。
デスクトップをカメラ入力に送るソフト使えば取り込めるけど。
715Now_loading...774KB:2009/06/27(土) 19:57:17 ID:dE5rvld/
そうですか。どんだけ探してもでてこないわけですね。
でも、よく「専用ソフト不要でデスクトップ共有」ってWEB会議システムがあるのだけど、あれってFlashだけじゃないってことなんですね。
全然違う技術ってことかなー。
似たようなのを作りたいんだけど、中々切り口が見つからない〜。
716Now_loading...774KB:2009/06/27(土) 22:32:46 ID:X2LDNrCO
>>712
AS3です。

CanvasっていうかButtonでもCheckBoxでもSpriteに
addChildしたら表示されないものでしょうか?
717Now_loading...774KB:2009/06/27(土) 22:41:34 ID:A5HwF1GI
>716
Spriteはコンテナだから表示オブジェクトはなんでも入るよ。
でも、716さんの場合、ちょっと、らち明かないから。
該当のソースを晒したほうが、もっと良い回答を得られると思うのです。
718Now_loading...774KB:2009/06/27(土) 22:56:32 ID:A5HwF1GI
もしかしてコンポーネントをステージに載せようとしてる?
確かライブラリのシンボルやコンポーネントは、
クラスを指定してコンストラクタさせないと、addChild()できないような気がする。
719Now_loading...774KB:2009/06/27(土) 23:21:37 ID:J4GRAkyY
お尋ねしたいのですが、

テキスト入力枠をステージに3つ置き、そこに入力した数値を足した数を
ダイナミックテキストとして表示したいのですが

どうやらそのテキスト入力の値が文字列として返ってくるようで
「ムービー内のスクリプトが原因でPlayerの速度が低下〜」といったエラーが出てしまいます

テキスト入力枠に入力した文字をNumber型に変換すればいいのか
それとも数値を加算する際に変数を

(a - 2009) * 11 + 1 + b + c;

とそのまま足しているのでこの段階でString型になってしまうのか

どちらにしてもその解決策がわかりません

まだ初心者なのでもしかしたら的外れなことを言っているかもしれませんが
どなたか、解決策があるのならば教えていただきたいです
720Now_loading...774KB:2009/06/27(土) 23:25:23 ID:XfoWgMhv
日本語のスキルが不自由な質問が多すぎる
自分の知ってる事は全部他人も知ってるみたいに思ってるんかいな
721Now_loading...774KB:2009/06/27(土) 23:33:03 ID:XfoWgMhv
>>716
普通は表示リストに追加されている(既に画面に表示されている)Sprite等のコンテナに
addChildしたものは、それがDisplayObjectを継承してるクラスであれば表示される。

で、Canvasってなに?自作クラス?それってDisplayObjectを継承してんの?
それをnewしてインスタンス生成して、stageにaddChildした時は表示されるわけ?
722Now_loading...774KB:2009/06/27(土) 23:35:01 ID:XfoWgMhv
>>719
ASのバージョン何?
テキスト入力枠のインスタンス名はそれぞれ何?
入力した値を使うスクリプトを書いてるらしいけど、具体的にどこにどういう風に書いてるわけ?
723Now_loading...774KB:2009/06/27(土) 23:35:16 ID:J4GRAkyY
>>719です

自分の中で本当に聞きたい事がわけわからなくなっていたせいで
クソみたいな文章になってしまいました、申し訳ないです・・・orz

お聞きしたいのは
String型の変数をNumber型に変換する方法です
どなたか知っていたら教えていただきたいです
724719:2009/06/27(土) 23:37:10 ID:J4GRAkyY
ASのバージョンは2.0です
重ね重ねご迷惑をおかけしてすいません
725Now_loading...774KB:2009/06/27(土) 23:44:17 ID:n/SIG0AX
mx系はSpriteにaddChildではダメだったんじゃなかったっけ?
726Now_loading...774KB:2009/06/27(土) 23:48:40 ID:XfoWgMhv
>>724
Number(文字列)

var s:String = "10"; //数値と解釈できる文字列
var n:Number = Number(s); //nにsを数値にしたものを代入

trace(n); //変換された数値
trace(n+1); //数値なので文字列連結でなく加算
trace(s); //元の変数sは変更ナシ
727Now_loading...774KB:2009/06/27(土) 23:52:50 ID:X2LDNrCO
>>718
ステージにCanvas載せてそれにSprite載せてます。
で例えばCheckBoxをCanvasにaddChildすると表示されますが
SpriteにaddChildすると表示されないという現象です。

>>721
Canvasとは
mx.containers.Canvas の事です。

>>725
やっぱりそうなんですか。。
ありがとうございます。
728719:2009/06/27(土) 23:54:48 ID:J4GRAkyY
>>726

なるほど!そういうことができたんですね

本当にありがとうございます!
729Now_loading...774KB:2009/06/27(土) 23:59:41 ID:+o9XdC0f
3.0だけどTextFormatがSetTextFormatしても適用されないよう
SetTextFormatしてもどっかでまた元に戻ってるんじゃないかと思うんだけど一体どうしてなんだよ
730Now_loading...774KB:2009/06/28(日) 00:10:24 ID:z0e9zPSf
>>729
3。0ならなんか勘違いしててdefaultTextFormat使えば済む話なんじゃねーのかなそれは
731Now_loading...774KB:2009/06/28(日) 00:12:24 ID:0HhwgeuQ
mx系というの初めて聞いた!

FlashMXの頃のコンポーネント?
Flex系のクラス?
732Now_loading...774KB:2009/06/28(日) 00:22:59 ID:3Yydzpdz
>>730
普通にできたよありがとう
でも何でSetTextFormatじゃ駄目なんだ
AS3の仕様は時々よく分からんよ
733Now_loading...774KB:2009/06/28(日) 00:31:44 ID:gvTHoaQ9
>>732
ドキュメントにかいてあるぞ
つーかぐぐればたくさんでてくる
734Now_loading...774KB:2009/06/28(日) 01:05:30 ID:sVsl149D
集計乙です




   ∩___∩   
   | ノ      ヽ   
   /  ●   ● |  http://wakuwaku.docomo.han-be.com
  |    ( _●_)  ミ  
 彡┌─┐|∪|  、`\ 
/ _,{ .茶 } ヽノ  /´>  ) 
(___)ニノ   ./ (_/
735Now_loading...774KB:2009/06/28(日) 01:09:49 ID:0HhwgeuQ
727さんはもしかしてflexの方なのかな。
もしそうなら、ASのバージョンのほかに、flashかflexかも
前もって断ったほうがいいかもね。

というかflexがどんなんか僕は全然しらないけど、、。
736Now_loading...774KB:2009/06/28(日) 12:36:45 ID:Sdvkmn7t
Canvasってなに?
って人はまずFlexを軽く知っとけ。
737Now_loading...774KB:2009/06/28(日) 12:43:04 ID:/HO2Njxs
質問です。
ブラウザ上で表示されているときに
「閲覧者が別のサイトに移動する」「ブラウザが閉じられる」
ことって検出できるでしょうか?
もしくは、C++のデストラクタみたいに、Flashが終了するときの処理を記述することって出来ないでしょうか?

ActionScript3.0を使用しています。
738Now_loading...774KB:2009/06/28(日) 16:18:20 ID:zccPRJuM
新しいsdkバグってない?embedしたソースが尽くエラー。
flash develop インストし直してしまったorz
739Now_loading...774KB:2009/06/28(日) 17:07:16 ID:0HhwgeuQ
ここにいる人の殆どは、FLASHでActionScriptを扱う人がおおいと思うのだけど。
質問に対してもFLASHで作業しているという前提で回答を考えていると思うのよね。

正直Flexや、FlashDevelop、とか今後だと、Airの内容とかを聞かれても
ちゃんと答えられないと思うし、質問する側にとっても良い環境ではないと思う。
今後多くなりそうなら、スレを分割するとか、プログラマ板に誘導するなり、
してはいかがかなと思うんだが、どうだろうか。
740Now_loading...774KB:2009/06/28(日) 17:45:41 ID:zccPRJuM
すまん、Flash CSを使ってコーディングしているという前提を知らなかった。
741Now_loading...774KB:2009/06/28(日) 18:26:30 ID:3Yydzpdz
Flash使いがFlexの質問に答えられないとは限らないんじゃ
それに分割したらそれだけ人が減って解答の勢いも減速しそうです
多数派以外は質問用のテンプレを作って使えば
742Now_loading...774KB:2009/06/28(日) 18:49:05 ID:0HhwgeuQ
それもそうね。テンプレで対応できればいいね。
ざくっとプログラム板を見てきたけど、まともなActionScriptの
スレなかったよ、、。
(むしろこのスレがある意味FLASH/動画板で異端かも知れないけど。)
743Now_loading...774KB:2009/06/28(日) 18:49:21 ID:tTfpv/8K
>>737
Event.DEACTIVATE ってのがあるけど、バグがあるみたいだから、
Event.MOUSE_LEAVEで検出するしかないみたい。
http://www.moock.org/blog/archives/000252.html
744Now_loading...774KB:2009/06/28(日) 18:51:03 ID:tTfpv/8K
ていうか別にFlex知らなかったら答えなくていいだけだし
どうでもいいと思うけど。
745Now_loading...774KB:2009/06/28(日) 20:51:58 ID:6L1OS5T8
>>744
Flashのつもりで答えたら実はFlexのトラブルで双方混乱、
みたいな事態もあるかもしれんじゃん
746Now_loading...774KB:2009/06/28(日) 21:04:40 ID:gbqWjLZ3
こたえる人だけじゃなく、検索で事例を探していたり
このスレ見て勉強していたりって人もいるから
Flex、CSどちらの場合かくらいは書いといたほうがいいと思う
747Now_loading...774KB:2009/06/28(日) 21:12:57 ID:0HhwgeuQ
ビルトインのクラスが全く同じだったら特に混乱はおきないんだろうけど。
どうやら違うらしいから。表記だけはしたほうがいいなあ。
748Now_loading...774KB:2009/06/28(日) 21:59:33 ID:zccPRJuM
flexはまた別にスレがあるっぽいからスルーでもいんじゃない?
749737:2009/06/29(月) 01:07:51 ID:1gusTEu8
>>743
ありがとうございます。
Event.DEACTIVATEとEvent.MOUSE_LEAVEはちょっと理想の動作と違いました。
調べたところ、Event.EXITINGが理想の動作のようでした。
(キチンと調べず質問してしまってすみません)。

ところが「Event.EXITING」と記述すると「未定義である可能性が高いプロパティ」
と出てエラーになってしまいます。
直前でEvent.ENTER_FRAMEとか使用してますし、Flash CS4の統合環境上で
「Event.EXITING」が青文字で表示されているのでつづり間違いもないと思います。
何か使用する条件ってあるんでしょうか?
FlashCS4, ActionScript3.0です。
よろしくお願いします。


750Now_loading...774KB:2009/06/29(月) 02:14:57 ID:qcQxCh5z
>>749
Air専用の定数だから、プロジェクトがAir向けになってないとエラーになるとかかな。
751737:2009/06/29(月) 03:30:53 ID:XldfzZ65
>>750
ありがとうございます、Air専用だったみたいです。
752Now_loading...774KB:2009/06/29(月) 10:02:13 ID:5F5EjEqs
>>749
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/events/Event.html#EXITING

Event.EXITINGはAir専用のAPIと書いてあるじゃない。
見てるところが違うんじゃないの。
753Now_loading...774KB:2009/06/29(月) 13:18:25 ID:W8cFVkzw
カスタムクラス内のメソッドやプロパティに

privateや、public などを表記しない場合は、
public と同じようにアクセス可能でしょうか?
754Now_loading...774KB:2009/06/29(月) 13:28:17 ID:5F5EjEqs
>>753
何も指定しない時はinternal、パッケージの外側からはアクセスできない
755Now_loading...774KB:2009/06/29(月) 13:28:22 ID:H0K+jFEi
>>753
表記しなかった場合はinternalの設定が適用される。
同じパッケージ内からのみアクセス可能。
756Now_loading...774KB:2009/06/29(月) 13:28:58 ID:6cQzLsF3
>>753
省略時はinternal。
同一パッケージ内のみアクセスが許される。
757Now_loading...774KB:2009/06/29(月) 13:38:37 ID:W8cFVkzw
>>754さん、755さん、756さん
ありがとうございました。めんどくさがらずにpublicと書くようにします。
758Now_loading...774KB:2009/06/29(月) 14:40:41 ID:pWA5F+lo
CPU負荷が高いので、CPU負荷を減らす方法を探しています。

FLASHが苦手なこととかありますか?
演算が苦手であればなるべく演算は一括で行うようにしますし、
そういうポイントがあれば教えてください。

759Now_loading...774KB:2009/06/29(月) 16:26:47 ID:qcQxCh5z
>>758
質問内容がちょっと漠然としすぎ。
こういうコンテンツでこういう処理をしてて重いんですが?とかなら答えやすいが。
一般的な知識を求めてるなら「Flash パフォーマンス」とかでググるといろいろ出てくると思うぜ。
760Now_loading...774KB:2009/06/29(月) 21:08:05 ID:EU20IAHw
AS3の総合的なFrameworkを探しているのですが、
ご存知でしたらオススメのものを紹介して頂けないでしょうか。
よろしくお願いします!
761Now_loading...774KB:2009/06/29(月) 22:32:37 ID:5F5EjEqs
>>760
範囲が広すぎて難しいが、
RailsのようなMVCのフレームワークを想定した質問とすると
Flashの場合、MVCのModelはViewやControllerと一緒になっている事が多いので
ControllerとViewを管理する事を考えると、下のが機能的に充実してる
http://progression.jp/ja/

あとは純粋にMVCの関係だけに機能絞ったライブラリだと下とか。
http://puremvc.org/

762Now_loading...774KB:2009/06/30(火) 02:06:02 ID:VGAdOK0a
会社に元(組込系)プログラマがやってきてAS担当になったが、
ASをしたことないのは、仕方がないけど。

オブジェクト指向ぐらい知っとけ。ボケ。
なんでデザイナの俺が、教えなきゃならんのよ。
763Now_loading...774KB:2009/06/30(火) 02:15:40 ID:SiHAi7Ez
>>762
組み込み系ならしょうがないじゃん、あまりいじめるなよ。
意外とflasmとか与えたら信じられないプログラムかくかもよw
764Now_loading...774KB:2009/06/30(火) 02:30:17 ID:VGAdOK0a
組み込み系は、オブジェクト指向とは無縁なのか。
素人がスクリプトを書いてると思ってウェブを舐めてたに違いない。
765Now_loading...774KB:2009/06/30(火) 03:47:45 ID:FaEXPr2i
まあでもぐだぐだアクションスクリプトでオブジェクト指向って言われてもね
766758:2009/06/30(火) 11:59:25 ID:9rvKt/FI
>759
ありがとうございます。
まさにそういう内容が知りたいと思ってました。
767Now_loading...774KB:2009/06/30(火) 12:52:05 ID:0qJMfjp/
>>765に噛み付く

> まあでもぐだぐだアクションスクリプトでオブジェクト指向って言われてもね

ぐだぐだって、何処が?
もしかして、AS2の事を言っているの?

AS3に付いて言えば、折れはぐだぐだとは思わない!
ECMAScriptとは、袂を分けてしまったが、そのお陰でJavaのスタイルがかなり反映されてきている。
言語としての抽象度も上がって、かなり良いと思う
768Now_loading...774KB:2009/06/30(火) 13:29:08 ID:VGAdOK0a
AS3 stricモード 各メソッドの内容はtraceで省略している。
package game{
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.*;

public class MainGame extends Sprite {

//コンストラクタ
public function MainGame() {
trace("コンストラクタの実行");
}
//test用コード
var testTimer = new Timer(5000,0);
testTimer.addEventListener(TimerEvent.TIMER,addEnemyASet);
testTimer.start();
function addEnemyASet(event:TimerEvent) {
addEnemy(50,30);
}
function addEnemy(newX:int, newY:int):void {
trace("addEnemyの実行");
}
}
}

この、カスタムクラスを実行すると、 「未定義のプロパティ testTimerへのアクセスです。」「未定義のプロパティ addEnemyASetへのアクセスです。」エラー表記されるんだが、定義の仕方間違ってるんだろうか?
769Now_loading...774KB:2009/06/30(火) 13:36:55 ID:pCGXzz6q
>>768
どう使ってるか知らんけど、見えてないんだったら
publicつけりゃいいんじゃね?
770Now_loading...774KB:2009/06/30(火) 13:43:37 ID:VGAdOK0a
ありがとう。
publicつけても駄目だった。
まだ、良くわかんない。
771Now_loading...774KB:2009/06/30(火) 13:59:42 ID:iU9+Uw05
>>767
古くさいし、洗練されてないといいたいところだが、続きはプログラマ/ム板でやろうか
772768:2009/06/30(火) 14:24:41 ID:VGAdOK0a
自己解決しました。

var testTimer = new Timer(5000,0);
をコンストラクタ内に収めればエラーが回避できた。

でも、Timerクラスはコンストラクタでnewしないといけないのか?
は、謎は残る。
773Now_loading...774KB:2009/06/30(火) 15:26:16 ID:Qopr4t8r
ていうか普通、メソッドの中でインスタンスの作成や他のメソッドのコールしないか。
そんな書き方始めてみた。
774768:2009/06/30(火) 16:02:43 ID:VGAdOK0a
もちろん、実行のソースは、メソッドの中に他の関数への参照とか、インスタンスの生成
を記述しているんだけど。
ここに書くには複雑になって原因がわかりづらいので余計なものは省略した。
775Now_loading...774KB:2009/06/30(火) 16:16:58 ID:Qopr4t8r
じゃあプロパティ変数のつもりで参照しようとしたら
ローカル変数で参照が存在しなかったとかいうおちじゃね
776768:2009/06/30(火) 16:45:52 ID:VGAdOK0a
すまん。自己解決していなかった。やっぱりエラーがでる。

ローカル変数というより、関数の外側にあるメソッドと、変数なので
そおいうおちではないようです。
777768:2009/06/30(火) 16:55:43 ID:VGAdOK0a
どなたか。手数だけど768をチェックしてくれないだろうか。

768のソースを「MainGame.as」と名前つけ、gameフォルダにを保存して
Fla側のドキュメントクラスに指定すれば再現できるから。

何がよくないのか良くわからん。
基本的なASをまだ理解してないのかも知れない。
778Now_loading...774KB:2009/06/30(火) 20:54:15 ID:9YFXYY/1
>>768
//test用コード
var testTimer = new Timer(5000,0);
testTimer.addEventListener(TimerEvent.TIMER,addEnemyASet);
testTimer.start();
↑この3行削除すればコンパイルは出来るよ。意図したとおりに動かないけど。
コンストラクタの中に入れれば多分意図したとおりになるはず。

あと
function addEnemyASet(event:TimerEvent) {
は、せっかくstrictモード使ってるなら「:void」をつけておいたほうが良いかと。
#なくても動くだろうけど。
779Now_loading...774KB:2009/06/30(火) 22:29:59 ID:VGAdOK0a
ありがとうございます。どうやらTimerクラスをnew するときは
そのカスタムクラスのコンストラクタの中に入れないといけないみたいですね。
ちょっといい勉強になりました。
780Now_loading...774KB:2009/06/30(火) 22:33:49 ID:JrSXo+Zy
>>768
そりゃインスタンス作ってないんだからaddEnemyASetはaddEventListnerの時点では未定義って言われる
staticな関数なら別だが

まぁ、そもそもクラス定義の中でtestコードの下二行みたいなのはダメなはず
変数の宣言と初期化はいいはずだが
781Now_loading...774KB:2009/06/30(火) 22:48:55 ID:VGAdOK0a
>そりゃインスタンス作ってないんだからaddEnemyASetはaddEventListnerの時点では未定義って言われる
>staticな関数なら別だが

ああ、なるほど。

>まぁ、そもそもクラス定義の中でtestコードの下二行みたいなのはダメなはず

静的メソッドを除いて、メソッドや関数はコンストラクタ(カスタムクラス名のメソッド)の
中に無ければいけないということですか?
782Now_loading...774KB:2009/06/30(火) 23:08:04 ID:JrSXo+Zy
>>781
静的関数を除いてっていうか、クラス定義ってのは変数と
関数の宣言と定義を行うんであって
処理を直接class Hoge{}の直下に書いちゃダメ
783Now_loading...774KB:2009/06/30(火) 23:24:46 ID:VGAdOK0a
>>781
>処理を直接class Hoge{}の直下に書いちゃダメ
あ、失礼 [処理]をですね。

カスタムクラスの基本が判ってなかったようでしたね。
大変勉強になりました。ありがとうございます。
784Now_loading...774KB:2009/07/01(水) 00:15:55 ID:Eb10Lanw
恐ろしい仕掛けが・・・・
ドコモ専用バイブ連動フラッシュ


http://beetv.jp/ft/horror02/1/1/?uid=NULLGWDOCOMO&rl=http%3A%2F%2Fbeetv.jp%2Fpg%2F10000121%2F
感想聞かせて〜
785Now_loading...774KB:2009/07/01(水) 00:19:48 ID:Wm/yQAmu
だから、メソッドをコールするのはメソッドの中でやらないと
だめだって書いたのに
786Now_loading...774KB:2009/07/01(水) 01:53:17 ID:cEmx+5Wy
君は他スレで、FLASHerを馬鹿にしてなかったか?
FLASH IDEはデザインとプログラムと合わさってこそ、その価値を十二分に発揮できる。
webプログラムをしたければ、何もFLASHのプラットフォームでなくてもいいだろ。
perlでもphpでもやればいい。ましてや、ASプログラマがFLASHerを見下すなんてもってのほか。
FLASH の世界が広がったのは彼らが居たからこそ。
君みたいな人にASプログラマを名乗って欲しくはない。
787Now_loading...774KB:2009/07/01(水) 01:59:51 ID:Zjl5Akk9
なにそれこわい
788Now_loading...774KB:2009/07/01(水) 03:04:14 ID:Wm/yQAmu
perlとphpはサーバサイドプログラミング
ActionScriptはクライアントサイドプログラミング
そんな区別もつかないのか
789Now_loading...774KB:2009/07/01(水) 03:12:36 ID:Wm/yQAmu
ちなみに英語でflasherは露出狂、陰部を見せたがる変態 という意味があって
恥ずかしいから使わないほうがいいよ。Flashやってる人がみんな馬鹿だと思われたら困る。
790Now_loading...774KB:2009/07/01(水) 04:40:03 ID:7FsP/XCN
CS4を語るスレには377に粘着するID:VGAdOK0aの姿が!
http://pc12.2ch.net/test/read.cgi/swf/1226410931/
791Now_loading...774KB:2009/07/01(水) 04:40:32 ID:TsRdsr1B
というかなんでそれを最初に張らなかったのだろう
792Now_loading...774KB:2009/07/01(水) 10:05:48 ID:o/KoE6FO
親MCの中に子MC(ボタンのような)を入れております。

親MCの第一フレームに
this.onPress = function() {
};
this.ko_mc.onPress = function() {
};
とし親(自分自身)と子へのイベントonPressを記述
しておりますが親のイベントを設定すると入れ子の子MC
はクリックできません。

解決策をご教授して頂けませんでしよう?
793Now_loading...774KB:2009/07/01(水) 20:44:07 ID:cjIa3TdF
Flash以外に、AS3.0を読み書きパブリッシュできるエディタは無いでしょうか?

オフィスではFlashを使用しているのですが、
自宅でも作業する必要が出てきたため
なるべく安価に作業環境を構築できれば良いなと考えています。
マシンはOSX10.4です。
794Now_loading...774KB:2009/07/01(水) 22:31:59 ID:vJlTP8sY
AS3ならFlexSDKやらFlashDevelopやらあるけど.flaってことだよな
795Now_loading...774KB:2009/07/01(水) 22:34:21 ID:/v6qyi1q
>>792
as2では親MCにthis.onPressを設定しちゃうと下のonPressが取れない仕様なので、
親MCにはonPressChild()とかの関数を設定して、下の階層のonPressがコールされてから呼ぶようにするのはどうでしょう?

this.ko_mc.onPress = function(){
this._parent.onPressChild();
}

一般的にはこうならないような仕組みを考えるか、
どうしてもこうしないといけないのであれば、最悪hitTest使うとかの逃げ道もあります。
796Now_loading...774KB:2009/07/02(木) 00:07:53 ID:QDJOPlne
EclipseベースのFDTってのがテンプレート機能があって自分的にはおすすめ。
日本語環境ではfcshを使うためにjavaを英語モードで起動する
ちょっとしたトリックが必要になるんだけど。
http://www.fdtgroup.org/

で構文チェックやコードサジェストなくていいから
とにかく軽いエディタならいいというならTextMateとか。
Bundleレポジトリから最新のAS3のバンドルとってくれば色々と機能がある。
http://macromates.com/
http://svn.textmate.org/trunk/Review/Bundles/ActionScript%203.tmbundle/

値段とか気にしないから、Adobe純正の情報の多さや他の製品との親和性が欲しい
というならFlashBuidler
http://www.adobe.com/jp/products/flex/
最新ベータ版
http://labs.adobe.com/technologies/flashbuilder4/

Mac環境で自分が試した事あるのはこんな感じ。
fcsh使うと前回のコンパイル結果をキャッシュしてくれるので、
場合によってはflashの数十倍速くコンパイル終るので使えるようにしたほうがいい。
797Now_loading...774KB:2009/07/02(木) 00:11:15 ID:QDJOPlne
書き忘れたけど
TextMateは日本語関係がダメなので、プラグインでハックして表示させないといけないん
だけど、表示が今ひとつなのと、あとFlexSDKを自分でインストールして設定しないと
いけないという面倒もある。
798Now_loading...774KB:2009/07/02(木) 00:16:25 ID:QDJOPlne
ついでに書き忘れたけど
Flash DevelopをVMWareなんかのWindowsエミュで動かして使ってる人もいる。
FlashDevelopは無料だから、エミュを既に持ってるならこれが一番安いかもしれない。

http://www.sawaijiri.com/2009/04/01/no40/
799Now_loading...774KB:2009/07/02(木) 10:15:54 ID:nZvzgbjN
>>789 俗語でじゃねーか。
800Now_loading...774KB:2009/07/02(木) 13:03:43 ID:vSWpsEsr
俗語っていうことは、日常的によく使われる言葉ということだ

よく考えろ!
801Now_loading...774KB:2009/07/02(木) 13:09:31 ID:vSWpsEsr
>>796

FDTのアドレス違う気がする...

ttp://fdt.powerflasher.com/
802Now_loading...774KB:2009/07/02(木) 14:54:21 ID:QDJOPlne
>>801
ごめん寝ぼけてた。
あと、FDTもFCSH使うのにFlex3SDK自分でインストール必要ある。
FCSHの英語での起動方法はここを参考
http://fdt.powerflasher.com/forum/viewtopic.php?f=21&t=6360&sid=021006aaed41c2d080678af4205ab06c
803Now_loading...774KB:2009/07/03(金) 01:47:42 ID:y6WwH3l3
stage.addEventListener(MouseEvent.CLICK, setStar);
function setStar(e) {
var stp:int = Math.floor(Math.random()*4)+1;
var target = e.target;
var star= new Ster1;
target.addChild(star);
star.x = e.localX;
star.y = e.localY;
}

マウスクリックしたらSter1〜4のどれかをランダムで配置する、ってのが作りたい。(綴りは故意
var star= new Ster1; ここでクラス名使って個体を識別するのは理解したけど、ランダムで選択する。って所がうまくいかない
var stp:int = Math.floor(Math.random()*4)+1; これで乱数作って挑戦してみたけどインスタンス名みたいにはうまくいかなかった。
一応この構文のままでも、Ster1をクリック位置に配置する、までは可能。
環境はCS3です。
804Now_loading...774KB:2009/07/03(金) 04:23:10 ID:i6Z78H4x
var ster:Class = Class(getDefinitionByName("Ster"+stp));
var mc:MovieClip = new ster();
こんな感じかな。
805Now_loading...774KB:2009/07/03(金) 05:38:17 ID:ksc+vvEY
floorして+1じゃなくてceilでいいよな、とか思ってしまった
806760:2009/07/03(金) 08:45:59 ID:1i+ZfqB7
>>761
遅レスながらありがとうございます!
ちょっくら試してきますノシ
807Now_loading...774KB:2009/07/03(金) 13:52:20 ID:StlCBCIU
Math.random()
疑似乱数 n を返します (0 <= n < 1)
なのでceilでは0になる可能性がある
808Now_loading...774KB:2009/07/04(土) 02:46:36 ID:3AZkLKuU
スレ違いかもしれませんが「Box2dFlashAs」について質問させて下さい
サンプルを元に組み込んでみたのですがgcされないメモリがどんどん増えていきます
(付属のサンプルでも同様の現象が起きました)
プロファイラを使ってみた所、主にb2ContactID、b2Featureなどの
衝突時に構築されるインターフェースが増えているようです
これについて何か情報お持ちの方、ご教示願えませんか?

開発環境
・Flash CS4 Progress
・AS3
・FlashPlayer10.0.2
809Now_loading...774KB:2009/07/04(土) 17:50:36 ID:pdUpBQvE
絵を描くソフトを作っているのですがフォトショップなどのように水彩などを使えるようにするため
copypixelsで点を1ドットずつ打つ処理をしているのですがこれだと古いPCなどでは重すぎます
何か良い方法はないでしょうか?宜しくお願いします
810Now_loading...774KB:2009/07/04(土) 23:50:27 ID:3AZkLKuU
どなたか>>808お願いします><
811Now_loading...774KB:2009/07/04(土) 23:54:10 ID:pVS70glg
知ったことじゃありません かえれ(><)
812Now_loading...774KB:2009/07/05(日) 00:02:05 ID:fhBb8lgY
Box2dFlashAsってソース公開されてるよね?あ、ASだから当たり前か。
ソース追ってみれば?

paperVison3Dとかもそうだけど、メモリ管理結構が雑だよ。てか、ろくに解放してない処理が結構ある。
813Now_loading...774KB:2009/07/05(日) 00:28:33 ID:5bptRACo
as3で、Soundクラスで、音を外部のmp3を読まして
写真のスライドショーの動きに仕込んでいるのですが、
だんだん音が遅れてきてしまいます。
as3のこのように特定のタイミングで音を鳴らすという場合、
何か注意することってありますか。

次第にずれていくのがなぜなのか、わからないで困ってます。
※タイムラインアニメーションは一切使っていません。
814Now_loading...774KB:2009/07/05(日) 03:44:49 ID:5bptRACo
813です。
Flashでタイムラインを使って制作する場合だと、同期させるために、
ストリームという設定があるみたいで、それで同期できるみたいなのですが、
完全にスクリプトで作っている場合、
ストリームに該当するものってあるのでしょうか??
815Now_loading...774KB:2009/07/05(日) 14:26:35 ID:vZYr0cmG
FlashCS3(AS3.0)をWinXPで使用。
Graphicsオブジェクトが参照できず困っています。

メインタイムラインのフレームアクションで
var shObj:Shape = new Shape();
shObj.name="sh0";
var grObj:Graphics = shObj.graphics;
mc0.addChild (shObj);//mc0はステージ上のMC

としました。
つまり、mc0の中にsh0を追加し、これにGraphicsオブジェクトgrObjを生成しました。

ところが、trace (mc0.getChildByName("sh0")); では [object Shape] と出るのですが、
trace (mc0.getChildByName("sh0").grObj); だと下記のエラーが出ます。

 1119: 未定義である可能性が高いプロパティ grObj に静的型 flash.display:DisplayObject の参照を使用してアクセスしています。

目的は、clear()を使ってgrObjを消すことです。
どうすべきでしょうか?
816Now_loading...774KB:2009/07/05(日) 19:15:30 ID:8P899Ih4
>>815
その処理では、shObj.grObjを参照する処理になってしまいます。

shObjとgrObjは同一階層にある変数なので、grObj.clear()とだけすればよいと思います。
もしくは、直接mc0.getChildByName("sh0").graphics.clear()とするか
817815:2009/07/05(日) 22:02:23 ID:pC8yhEoe
>>816
さんきゅうです。grObj.clear()でOKでした。

mc0.getChildByName("sh0").graphics.clear()だと
 1119: 未定義である可能性が高いプロパティ graphics に静的型 flash.display:DisplayObject の参照を使用してアクセスしています。
となります。

でも不思議なのは、grObjはStage内のmc0の子のsh0と同じ階層にあるのに、何故
メインタイムラインのフレームアクションでアクセスできるのでしょうか?
(trace (grObj);も正常に表示されますし・・・)
818Now_loading...774KB:2009/07/06(月) 00:59:13 ID:SiPNXdZR
>>817
getChildByNameで帰ってくるのはDisplayObject型でしたね、申し訳ありません。
これに関してはキャストしないとコンパイラがエラーを吐くようなので、
Shape(mc0.getChildByName("sh0")).graphics.clear()としてやれば大丈夫なようです。

変数へのアクセスですが、addChildは「その変数のオブジェクトを子として表示リストに加える」というだけで、
変数自体についてはこの場合、mc0もsh0もgrObjもすべて同じ階層にあります。

といっても当方はFlexユーザなので多少の齟齬があるかもしれませんが、たぶんあってると思います。
819815&817:2009/07/06(月) 15:01:03 ID:cqDN3ITN
>>818
度々すいません。
Shape(mc0.getChildByName("sh0")).graphics.clear()は駄目です。
traceするとNullになります。
820Now_loading...774KB:2009/07/06(月) 22:47:50 ID:CGSLBaHJ
激しくスレ違いかとは思いますが、PCを買い替え、ブラウザIE8を設定
FlashPlayerを最新に変えたのですが、サイトによってSWFが読み込まれないもの
がいくつか出てきました。

例えば
http://www.shiseido.co.jp/anessa/
ではTOPのムービーが出現した後、何も読み込まれません。(白い画面)

http://answer.nttdocomo.co.jp/4brand/index.html
では、最初に現れるボタンをクリックした後、何も読み込まれません。

とはいうものも、全ての読み込みファイルが表示されないというわけ
ではないようです。

swfをキャッシュに残さないように特別に処理をしたスクリプトに対して
読み込みができなくなっているように思います。

激しく、スレ違いかと思いますが、他のスレよりASに詳しい方が
多い方がよいかと思って伺いました。
解決策をお分かりの方いらしたらお教えください。

あ、解決というのは、ブラウザの設定などによって、このような
表示を出さない方法があるか?ということです。
ASの作成のことではありません。どうぞよろしくお願いします。
821Now_loading...774KB:2009/07/07(火) 01:03:10 ID:b5qsMKJ0
どちらもボタンをクリックしたら他のSWFファイルをロードするようにしてるから
crossdomainポリシーの設定がサーバー側で間違ってるとか古いとかかな。
自分のFlashPlayerの設定見てみたけど、特に問題になりそうなところは見当たらなかった。
822Now_loading...774KB:2009/07/07(火) 01:14:42 ID:YtrozAcj
>>819
trace (mc0.getChildByName("sh0"));で[object Shape]とでるにも関わらず、
Shape(mc0.getChildByName("sh0")).graphics.clear()がNullになるのはこちらではわからないです。
お力になれず申し訳ありません。
823Now_loading...774KB:2009/07/07(火) 21:58:41 ID:HbF5B3xG
初歩的なことですみません
BitmapDataの大きさを変更するにはどうしたらいいでしょうか?
824Now_loading...774KB:2009/07/07(火) 22:53:46 ID:b5qsMKJ0
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/Bitmap.html#propertySummary

BitmapのほうのWidthとかScaleXをいじればいいんじゃない
825Now_loading...774KB:2009/07/07(火) 22:54:57 ID:YtrozAcj
>>823
動的に変更するには作り直すしかありません。

たとえとして、bitmapDataという変数に横100・縦100のデータを入れている場合、
それを内容そのままで横200、縦200にしたければ
var oldBitmapData:BitmapData = bitmapData;
bitmapData = new BitmapData(200, 200, false, 0x000000);
bitmapData.copyPixels(oldBitmapData, oldBitmapData.rect, new Point(0, 0));
oldBitmapData.dispose();
といった処理で実現できると思います。
826Now_loading...774KB:2009/07/07(火) 23:00:56 ID:HbF5B3xG
>>824-825
ありがとうございます!
さっそくやってみたいと思います
827Now_loading...774KB:2009/07/08(水) 15:52:48 ID:zqf0FjmC
すみませんArrayについて教えてください。

自分の常識で、普通は要素の番号を 0 以上の整数で指定するものだと思っているのですが、
以下のように -1 を指定しても動きます。

var myArray:Array = new Array();
myArray[0] = 0;
myArray[1] = 100;
myArray[-1] = -100;

C言語のポインタに置き換えて考えると納得は出来るのですが、メモリ破壊とか起きていないか不安です。
この使い方は本来許されるのでしょうか?
828Now_loading...774KB:2009/07/08(水) 18:17:10 ID:kmIcMwyJ
>>827
ASでは配列はハッシュ(Object型)のように実装されているので、
myArray["-1"]のように文字列として指定した場合と(基本的に)同じです。
ASの配列の添え字はポインタのようにアドレスを指しません。
その面ではメモリの破壊などは起きないと考えてよいです。

ただ通常以外の範囲を使っているとバグが紛れ込みやすくなります。
またmyArray.lengthなどの計算がおかしくなるかもしれないので
その辺はいろいろ試してチェックしてください。
829Now_loading...774KB:2009/07/09(木) 09:41:42 ID:+rQybXn2
AS3で
1個のビットマップをステージ上に大量にaddchildしたいのですが
copypixels()を使って複製するのと、ライブラリに読み込んであるビットマップデータを
たくさんインスタンス化するのとどっちの方がよいでしょうか?
830Now_loading...774KB:2009/07/09(木) 11:36:05 ID:+gE+DPl5
>>828
827です。 返事が遅くなってすみません。
解説ありがとうございます。 Arrayの仕組み納得しました。
あのあといろいろ試してみたのですが、-1とか、0.5等の少数点付きのインデックスでも独自に要素が作られるようです。
空の配列を初期値とした場合、lengthの値は0以上の整数をインデックスに使った分だけがカウントされるようでした。
831Now_loading...774KB:2009/07/09(木) 11:58:19 ID:+gE+DPl5
>>829
メモリや速度の点ではcopyPixels()を使った方が有利に思えますが、
背景の絵の上でアルファ付きのビットマップを動かす等の場合はインスタンス分けた方が扱いやすい気がします。
(背景と、大量に表示させる用のキャンバスのレイヤーを分ける等、工夫すれば問題なさそうですが)
832Now_loading...774KB:2009/07/09(木) 20:47:11 ID:fRYTck1+
>>831
ありがとうございます。
アルファを考えるとインスタンスの方が楽ですね
833Now_loading...774KB:2009/07/10(金) 03:06:33 ID:RNaCjQYn
1つのボタンで2つのアクション付けるにはどうしたらいいですか?AS3です。

具体的には;
1回目でMovie再生
2回目でMovie停止
と言った感じです。
83491:2009/07/10(金) 09:35:25 ID:xmGN8PP5
button インスタンス名 : hoge

bool isPushed_flg = false;

hoge.onClick(){
if(isPushed_flg = false){
*ここに1回目
isPushed_flg =true;
}else{
*2回目の処理
isPushed_flg =false;
}
835Now_loading...774KB:2009/07/10(金) 10:43:21 ID:fXhAfPrf
>>834
なんか他の言語ごっちゃになってないそれw

on/offのトグル形式だったらフラグで管理するのもいいけど、いっそのこと実行する処理を切り替えてもいいかもね。
初回だけメッセージを表示したい、なんて場合はこっちのが楽かな

button.addEventListener(MouseEvent.CLICK, onPlay);
function onPlay(e:MouseEvent):void{
//再生処理を記述
button.removeEventListener(MouseEvent.CLICK, onPlay);
button.addEventListener(MouseEvent.CLICK, onStop);
}
function onStop(e:MouseEvent):void{
//停止処理を記述
button.addEventListener(MouseEvent.CLICK, onPlay);
button.removeEventListener(MouseEvent.CLICK, onStop);
}
836Now_loading...774KB:2009/07/10(金) 12:07:12 ID:J+xjdE3H
AS3でブレンドモード、スクリーンなどにしてにしてあるmcに、alpha 0→1のトゥイーンをかけると、フェードせず急に表示されてしまうのですが回避する方法はないでしょうか?
837Now_loading...774KB:2009/07/10(金) 12:09:49 ID:RYOjsn82
>>833

カウンター用の変数を設定して、ボタンをクリックする度にインクリメント。
同時にカウンター変数を2で割って、割りきれる時にMovie停止の条件を付ければ良いと思う
838Now_loading...774KB:2009/07/10(金) 22:01:44 ID:OpdpLpbX
AS3でタイピングゲーム作ってて、テストプレイしてるとたまに止まります
(タイマーイベントだけがなのか全体がなのか分かりませんが)
タイプ音入れたらさらに止まる頻度が多くなりました
これって重いせいですかスペック的に問題はないと思うんですが
839Now_loading...774KB:2009/07/10(金) 22:33:21 ID:XS1jbLti
>>838
このスレには現在、お前の思考を遠隔地から読み取れるエスパーはいません。
もう一度書き込み内容を確認して出直してください。
840Now_loading...774KB:2009/07/10(金) 22:57:02 ID:OpdpLpbX
flash player(もしくはTimerイベントだけ)が突然停止するような症状について
考えられそうな原因に思い当たる節のある人はよかったら教えてください><
841Now_loading...774KB:2009/07/10(金) 23:00:49 ID:5dzSynih
>>840
「停止」って表現がいまいちよくわかりません><
動きがカクカクするっていう意味なら重いせいです><
842Now_loading...774KB:2009/07/10(金) 23:10:32 ID:OpdpLpbX
キー入力を受け付けないのとタイマーイベントに組み込んだカウンター
(挙動を計るために呼び出される度に++して表示するようにした変数)
も止まっちゃって動かない感じです
症状をもうちょっと限定するために色々試してみます><
843Now_loading...774KB:2009/07/10(金) 23:12:24 ID:SLRK3hk0
>>840
停止するような作りをしているからです><
考えられる原因はいろいろとありすぎるので、設計を詳しく説明するとか
もっと再現する条件を絞り込んだ方がいいと思います><
844Now_loading...774KB:2009/07/11(土) 02:58:47 ID:S3pZ6b3v
><><><
845Now_loading...774KB:2009/07/11(土) 06:14:41 ID:TvKTxPlY
wordpressで、最新の投稿の一覧表示を
テンプレートタグを使い、xmlを出力し、
そのxmlをflash側で読み込み、それぞれのタイトルをクリックすると、
flash側にそれぞれの記事を表示したいと考えています。

参考URL(バックエンドのブログは、MTのようです。)
http://www.keikotokyo.com/
→colum

作り方で、ヒントになるような参考記事など、アドバイスを
いただけないでしょうか?

846Now_loading...774KB:2009/07/12(日) 05:12:49 ID:bi8i728i
http://public-noise.jp/archives/33

ここに紹介されてるプラグイン実際に試したけど
便利だったよ
847Now_loading...774KB:2009/07/12(日) 09:05:52 ID:bi8i728i
あとxmlのロード処理が複数あって
取り回しが面倒だというときはこういうAS3のほうのライブラリ使うといいかもよ
http://blog.hydrotik.com/category/queueloader/
http://code.google.com/p/bulk-loader/
848845:2009/07/12(日) 12:14:57 ID:Z9jOcja/
みなさんありがとうございます。
いま、いろいろ検証していて、
いきづまったので、お教えください。

xmlのデータをflash側に取り込もうとしていて、
ルートデータは、下記のようにしてとりだすことはできたのですが
子データの取り出しをどういうふうにしたらいいかわかりません。
※xmlデータでいう<entry></entry>部分になります。

よろしくお願い致します。

actionscript//
_global.index_xml = "test.xml";
_global.xmlIndex = new Object();
XML.prototype.ignoreWhite = true;
indexXML = new XML();
indexXML.onLoad = XMLLoaded;
indexXML.load(index_xml);


function XMLLoaded(success) {
rootNode = indexXML.firstChild;
xmlIndex.firsttitle = rootNode.attributes.firstEntryTitle;
_root.photo_entry.entryTitle.text = xmlIndex.firsttitle;
}
849845:2009/07/12(日) 12:17:01 ID:Z9jOcja/
xml//
<?xml version="1.0" encoding="UTF-8"?>
<Index blogTitle="test" blogDescription="test" firstEntryTitle="test" firstEntryDate="20090711" firstEntryBody="test.jpg">

<entry entryTitle="testy" entryExcerpt="テストです。" entryDate="20090711" entryCategory="test" entryMore="photo_05-thumb.jpg" entryDescription="てすと"
entryExcerpt="これはテストです。" />
</entry>

</Index>
850Now_loading...774KB:2009/07/12(日) 17:32:54 ID:d7uVY6TJ
すれちがいの超初心者です。
スタートボタンすら作れないほどですw

ActionScript3.0ですが

・ボタン自体↓
btn_start.onRelease = function()
{
gotoAndStop(2);
}

なお、btn_startはインスタンス名です


・ムービーの動きを止めるために別レイヤーで↓
stop();


もしかしたら間違えて2.0の方を打ち込んでいるかもしれませんが、
どなたか教えてください…。
851Now_loading...774KB:2009/07/13(月) 15:54:35 ID:81hLZjba
swfを外部読み込みして、
全画面表示にしているんですが、
ブラウザに追従して 縦横比を維持して
拡大縮小したいんですがどうカスタマイズしていいいか
教えてください。

環境は、flash9 as2です。

Stage.scaleMode = "noScale";
Stage.align = "TL";
var myMenu = new ContextMenu();
myMenu.hideBuiltInItems();
_root.menu = myMenu;

this.imgLoad();


var resizeListener = new Object();
resizeListener.onResize = function (){
stageFix();
};
Stage.addListener(resizeListener);

function stageFix(){
bg_mc._width = Stage.width;
bg_mc._height = Stage.height;
}
852Now_loading...774KB:2009/07/13(月) 15:55:30 ID:81hLZjba
続きです。

function imgLoad () {
var this_mc:MovieClip = this;
var bg_mc:MovieClip = this_mc.createEmptyMovieClip("bg_mc", 0);
var bg_depth:Number = bg_mc.getDepth();

var img_t:String = "test.swf";
var i_mcl:MovieClipLoader = new MovieClipLoader();
var initImgListener:Object = new Object();

initImgListener.onLoadProgress = function(target_mc:MovieClip, nLoadedBytes:Number, nTotalBytes:Number) {
per = Math.round((nLoadedBytes/nTotalBytes)*100);
trace(per + "%");
};
initImgListener.onLoadComplete = function(target_mc:MovieClip) {
_root.loadOK =true;
};
i_mcl.addListener(initImgListener);
i_mcl.loadClip(img_t, bg_mc);
}
853Now_loading...774KB:2009/07/13(月) 19:46:44 ID:ul7d84iH
SWFから画像を読み込ませる際
SWFからの相対パスで読ませたいので
HTML側でobjectとembedタグにbaseパラメータを追加する方法を試したんだけど
まったくうまくいかん!

今はフォルダ内のa.swfが同フォルダ内のa.jpgを読み込む設定をして。
一つ上の階層に表示するためのHTMLがある状態。で細かいコードを書きたいんだけど
今帰りの電車で携帯で書いてるからコードが書けん。スマソ。情報が少ないのは百も承知でなんかアドバイスあったらよろしくおねがい

環境:WIN AS3
854Now_loading...774KB:2009/07/13(月) 23:57:20 ID:DUTdP56b
Flex builder 3を使っているのですが

private var mynewText:String = "";

var readFile:File =new File(mynewText);
var fileStream:FileStream = new FileStream();

fileStream.open(readFile,FileMode.READ);
var str:String = fileStream.readUTFBytes(fileStream.bytesAvailable)
var str1:Array = str.split("\n"); //改行で分割して、それぞれを配列に差し込みます。

var value:int = str1.length; //配列の長さを取得
var number = new number[value];
for(var i=0; i<value ; i++) number[i] = parseInt(str1[i]); //型変換で数値に変換します

のように、FileStreamで数字で書かれたテキストデータを
Stringで読み込み、それぞれを分割して配列に入れたあと型変換するプログラム
なのですが、splitの行でどうしてもシンタックスエラーが出てしまいます。
原因がよく分からないのですが、どうであると考えられるでしょうか?
855Now_loading...774KB:2009/07/14(火) 00:40:16 ID:783bEQeo
>>853
どこがうまくいかないの?

>>854
なんてエラーがでているの?
856Now_loading...774KB:2009/07/14(火) 01:42:57 ID:dKnoN2jt
こんな時間ですが・・・
AS3で 画像の余白を取り除く ようなことは出来ますでしょうか?

例えば、透明な100x100pxの画像の中に49x49pxの色付き矩形があるpng画像を読み込んで、
色付きの矩形の部分だけを扱いたいのです。

実際のサイズや形は不特定なもので、よくある画像編集ソフトの余白を取り除くような機能みたいなのがあればと思ってます。

ややこしい事かとは思いますが、どなたかお知恵をくださいorz <ネムイヨー
857Now_loading...774KB:2009/07/14(火) 01:43:04 ID:zqUGfRwz
時計を作ったのですが、音がどんどんずれてしまいます。
Timerオブジェクトでも、Tweenerでもどちらにしても、
再生をほったらかしにしているとずれていってしまいます。
音は一度Soundクラスで生成した後、毎回playにするとずれますか?
いい方法をご存知の方、おしえてください
858Now_loading...774KB:2009/07/14(火) 13:51:38 ID:XdGW0a1W
>>856
BitmapDataに変換してgetColorBoundsRectを使えばいいんじゃないか
859Now_loading...774KB:2009/07/14(火) 14:50:11 ID:zqUGfRwz
http://www.shiseido.co.jp/anessa/

ここの映像にあるドットスクリーンの表現を、AS2でおしえてもらえませんか?
スクリーン自体の表現はなんとかできたんですが、ブラウザを拡大縮小すると、
ドットの形がかわってしまいます。ブラウザに追従して、常に、ドットスクリーンの
模様を維持したいです。

860Now_loading...774KB:2009/07/14(火) 15:01:54 ID:cmgud2CK
携帯電話用に、電池残量を読み込むflashを作りたいのですが、
電池状態が4段階(電池0⇒電池1個⇒電池2個⇒電池3個(フル))の端末では動くのですが、
docomoSH06aのような6段階あるものでは動きません。
下記がソースです。どうしたらいいでしょうか?

///電池残量の取得をします
battLevel = fscommand2("GetBatteryLevel");

/*電池残量に応じたフレームへジャンプさせます
→電池の残量の値は、
→残量レベル3の時に「3」→残量レベル2の時に「2」→残量レベル1の時に「1」の値を取得し、これがタタイムラインとリンクしています*/

gotoAndPlay(battLevel+2);

/*式を使って
取得した値に+2を加えてフレームへジャンプさせます
→残量レベル3の時に「3」+2=5フレーム目へ
→残量レベル2の時に「2」+2=4フレーム目へ
→残量レベル1の時に「1」+2=3フレーム目へ
さらにジャンプしたフレームから、それぞれの
残量レベルへのランダムが記述されたフレームへジャンプさせます*/
861Now_loading...774KB:2009/07/14(火) 16:43:00 ID:dKnoN2jt
>>858
できました!ありがとうございます!
862Now_loading...774KB:2009/07/14(火) 22:09:38 ID:ke0EdPR6
as初心者です。
flashでページトップボタン(ムービークリップ)をつくり、
ブラウザのスクロールバーをスムーススクロールしてページトップに戻すような
スクリプトの記述がわからないので、
教えて下さい。よろしくお願いいたします。
863Now_loading...774KB:2009/07/15(水) 06:51:47 ID:rxfTibRL
>>862 バジョンはAS3.0でいいの?
ちゃんと>>1を読もう
後日本語がよくわけわからん。
もうちょいわかりやすく
864Now_loading...774KB:2009/07/15(水) 07:36:51 ID:TE/wpQgn
CS4+AS3での質問なのですが
CS4側でストリーミング再生したサウンドのSoundChannelを
取得したいのですが、そのようなことは可能ですか?

ストリーミング再生した音楽の音の波にあわせて
MCを拡大縮小させたいのです。
865Now_loading...774KB:2009/07/15(水) 08:26:52 ID:TE/wpQgn
var array:ByteArray = new ByteArray();
SoundMixer.computeSpectrum( array );

var peak:Number = array.readFloat();

scaleX = peak;
scaleY = peak;

で、いけました!お騒がせしました。
866Now_loading...774KB:2009/07/15(水) 16:41:34 ID:ZLP2OES4
853です。
現在の状態を説明しますと。
flashフォルダの中に、a.swfがあり、そのswfが同階層にあるa.jpgを
読ませる設定をしています。

【SWF側】
var loader:Loader = new Loader();
loader.load(new URLRequest("a.jpg"));
addChild(loader);
stop();

そのひとつ上の階層にあるhtmlでパラメータに「base="."」を追加した記述をしています。
【HTML側】
<html>
<head>
<title>movie</title>
</head>
<body>
<object>
<embed src="flash/a.swf" base="." quality="high"width="300" height="300" />
</object>
</body>
</html>

この状態でHTMLを開くと、Flash自体はよむけど
そのFlashから読み込むはずのjpgが読んでくれません。

何が間違っているのでしょうか?
もうずっっと悩んでます。。。

環境:win、as3
867Now_loading...774KB:2009/07/15(水) 19:37:57 ID:YgwCah3K
>>866
baseパラメータって使ったことないんでよくわからんけど
なんでobjectタグ省略しちゃってんだよ?
868Now_loading...774KB:2009/07/15(水) 21:40:53 ID:Bp9cjXTf
SWFファイルがある場所からの相対パスなら上手くいくとかじゃね".."とか。
あと、SWFObjectとか使ったほうがいいかもしれない。
http://mtl.recruit.co.jp/blog/2007/10/swfobject_v20.html
869Now_loading...774KB:2009/07/16(木) 09:51:25 ID:o9HbfirU
866です。

>>867
ひとまずどっちかだけでも良いかなぁとおもって
>>868
SWFObjectで試すも結果は変わらなかった

で。いろいろゴニョゴニョやってたら
解決しましたー!?
サーバにアップ&C:直下でなら問題なく表示されました!
デスクトップや他のローカル環境で作業していたので
表示されなかったようです。
理由はよく分かりませんが、FLVの読み込みみたく
"デスクトップ"みたいな2バイト文字をどっかで読んじゃってんのかなー?
更に詳しいことわかるひといたらよろしくです。
でもやっとひと段落。ふー。
870Now_loading...774KB:2009/07/16(木) 12:21:38 ID:d5egu478
下記リンク先のトップページに記載されているような
写真がスライドするアクションスクリプトがダウンロードできるサイトをご存じないですか?
ジャバスクリプトで表現できるのであれば、そちらでも構わないのですが、
ぜひよろしくお願いします。

http://osaka.deli-m.net/top/
871Now_loading...774KB:2009/07/16(木) 12:41:43 ID:WPo8Dnqh
宣伝乙
872Now_loading...774KB:2009/07/16(木) 12:42:29 ID:d5egu478
すみません。
宣伝ではないです。
本当に知りたくて。
873Now_loading...774KB:2009/07/16(木) 13:44:00 ID:tgG/vTrT
その程度なら うちの会社に委託するといいよ
874Now_loading...774KB:2009/07/16(木) 13:54:17 ID:1NhLDIWZ
デwリwヘwルwww
875Now_loading...774KB:2009/07/17(金) 16:06:28 ID:uvbLMIAn
文法について伺います。

loaderInfo.addEventListener(progressEvent.PROGRESS, progressHandler);

上のloaderInfoは、
@LoaderInfoクラスのオブジェクト
ADisplayObjectクラスのプロパティ
B質問自体がナンセンス

のうちどれにあたりますか?
すいません。どうぞ宜しくお願いします。
876Now_loading...774KB:2009/07/18(土) 03:57:36 ID:latXC/dZ
>>870
ASは2.0?3.0? MacかWinか?
2.0なら「Flash MX ActionScript ほぼ10行道場」(毎日コミュニケーションズ)
のp348に例がある。

ポイントは
1)ステージよりやや幅の広い画像をA,B(同じもの)2枚用意して、
連結して列車のように動かす。
2)Aが左に行ったらBの右に置く。
877Now_loading...774KB:2009/07/18(土) 18:13:49 ID:MIm3ejAn
>>875
文法について聞くの多いけど宿題か?
878Now_loading...774KB:2009/07/18(土) 20:21:08 ID:IXatyWgb
AS2です。
lineToするとMCの背面に描画されるんだけど
最前面に描画するにはどうしたらいいですか?
879Now_loading...774KB:2009/07/18(土) 20:30:08 ID:R/jjdR2u
WinXP-Pro(CS3, AS3.0)です。

下記の記述でブラウザの新しいウインドウを開くことが出来たのですが
FireFoxを規定のブラウザにしているためこれが開いてしまいます。

var urlStr:URLRequest = new URLRequest("http://www.2nn.jp/");
navigateToURL (urlStr, "_blank");

ASでブラウザの種類を指定することは出来ますか?(IEで開きたい)
880Now_loading...774KB:2009/07/18(土) 22:03:54 ID:gUlRewb2
>>878
lineTo用のMCを既存のMCより上に作ってそこに描くとか
881Now_loading...774KB:2009/07/18(土) 22:42:43 ID:ojFm2Kew
AS2です。
(1) ライブラリに空のMCを作ってシンボルプロパティからクラス(A)をアタッチし、ステージに配置(mcA)した場合と、(2)フレームスクリプトでクラス(A)を
impot A;
mcA2 = new A();
した場合ではなにが違うのでしょうか?

(1)の場合はコンストラクタでeval(this)すると、
”_level0.mcA"が取得できますが、
(2)の場合は"undefined"となってしまいます。


882Now_loading...774KB:2009/07/19(日) 01:20:20 ID:w4NPp68M
>>880
できた
883Now_loading...774KB:2009/07/20(月) 00:20:35 ID:kVnOB7LL
AS3で点滅させるにはどうすればよいですか?
884Now_loading...774KB:2009/07/20(月) 00:33:05 ID:b5HnvSPn
>>883
まず調べる
885Now_loading...774KB:2009/07/20(月) 00:34:21 ID:5sMKAu1l
すいません。
>>879をお願いします。
886Now_loading...774KB:2009/07/20(月) 02:25:29 ID:Vzy2ciaz
>>885
できません
887Now_loading...774KB:2009/07/20(月) 16:58:46 ID:JanCfDJn
>>886
てんきゅう
888Now_loading...774KB:2009/07/20(月) 19:17:26 ID:/9OB+dvy
こんばんは、AS3での書き方を教えて頂けないでしょうか?

onClipEvent (load) {
this.gotoAndStop(_root.clickTAG);
}

as1から、html上に書かれたjavaを読みに行く書き方のようなのですが、
as3ですとどのように書けばいいでしょうか?
889Now_loading...774KB:2009/07/21(火) 00:22:37 ID:OwuoQ8W0
おれは絶対釣られないからね。
890Now_loading...774KB:2009/07/21(火) 03:51:16 ID:JGOpuXmG
VisibleをTimerかTweenerで反転させるのが手軽でいいんじゃない
891Now_loading...774KB:2009/07/21(火) 13:06:20 ID:jxK/nX9V
CS3のAS3.0でWinXPです。
ドキュメントクラスでのMCの扱いで質問です。

ステージの1フレ目にbutton1を置きドキュメントクラスのコンストラクタで
button1.buttonMode=true;
button1.addEventListener (MouseEvent.CLICK, button1_click, false, 0, true);

と書きました。次いで2フレ目にbutton2を置き、上の記述の下に追記する形で
button2.buttonMode=true;
button2.addEventListener (MouseEvent.CLICK, button2_click, false, 0, true);

としたところ、button2.buttonMode=true;の箇所で下記のエラーが出ます。
 TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

button2をbutton1と同じく1フレ目に置けば問題ありませんが、設計上都合が
悪いです。2フレ目以降のオブジェクトをドキュメントクラスのコンストラクタで認識
させるにはどうしたら良いでしょうか?

アドバイス願います。
892Now_loading...774KB:2009/07/21(火) 13:14:24 ID:5wQe7kG3
as2.0です。
関数a,b,cがあって、中身はa_mc,b_mc,c_mcのフェイドイン処理を行います。

関数cを呼ぶ→フェイドイン処理が終わる→関数aを呼ぶ→フェイドイン処理が終わる→関数bを呼ぶ→フェイドイン処理が終わる
↑のような感じで次々に関数を呼ぶ仕様で、順序を任意で数パターン対応できるようなものを作ったのですが、
もっとかんたんなやり方があるような気がするのですがご教示お願いします。

今のやり方
関数a,b,cにフェイドイン処理が終わった後、関数motionを呼ぶようにしておく
motionには配列orderに格納された順にフェイドインを実行する

function motion(){
this[order.shift()].fade_in();
}

function set_order(flag){
if(flag){
order=['c_mc','a_mc','b_mc'];
}else{
order=['a_mc','b_mc','c_mc'];
}
}

関数set_orderで関数を呼ぶ順番を配列orderに格納しています。(実際は数パターンにわたって複雑に処理しています)

こんな感じなんですがよろしくお願いします。
893Now_loading...774KB:2009/07/21(火) 13:41:24 ID:G5NUnzo7
だれか開発手伝っていただけませんか
日給1万程度で。
894Now_loading...774KB:2009/07/21(火) 13:43:01 ID:jXXaE0xN
>>891
>2フレ目以降のオブジェクトをドキュメントクラスのコンストラクタで認識
これは無理かな
895Now_loading...774KB:2009/07/21(火) 13:44:40 ID:wcN7f/VL
>>892
要は、配列をシャッフルできればいいってことかな?
896Now_loading...774KB:2009/07/21(火) 13:45:04 ID:jXXaE0xN
>>892
それでいいんじゃない
897Now_loading...774KB:2009/07/21(火) 14:27:12 ID:5wQe7kG3
>>895
レスサンクスです。
わかりにくくて申し訳ありません
そうではなくて
motion()からfade_in()を呼んでそこから又motion()を呼んでの繰り返しが
どうもしっくり来ないって言うかもっとかんたんな処理は無いものかと思いまして。

>>896
レスサンクスです。
これしかないですかね
898Now_loading...774KB:2009/07/21(火) 17:22:07 ID:H1kFwoQh
>>894
う〜む。残念。
さんきゅう
899Now_loading...774KB:2009/07/21(火) 23:38:50 ID:mZVQxdLE
>>897
わざわざ各MCにフェイドインの関数準備して呼ぶより
関数にフェイドインさせるMC渡す形の方がスッキリしそうだけど
900Now_loading...774KB:2009/07/22(水) 00:26:45 ID:OgxTp0ic
AS3.0です。初心者です、わかりにくく恐縮ですが、お願いします。

144個のムービークリップを配列に入れこみ、そのひとつひとつに対して、まずアルファ値をそれぞれランダムで与え、そこからだんだんとアルファ値を増やし、1まできたら減らし、というスクリプトを作りたいです。
ムービークリップのインスタンス名は、a_1からa_144と、「a_」以降の数字を増やすように名付けてあります。
901Now_loading...774KB:2009/07/22(水) 00:27:38 ID:OgxTp0ic
(↑のつづきです)今、参考書を読みつつ作っている物が
for (var i:int=1; i < 144; i++) {
var back_array:Array = new Array("a_"+i)
//for文を使い、ムービークリップを配列に入れているつもりです
back_array[i]="a_"+i;
var back:MovieClip=back_array[i]; //ムービークリップを取り出す
back.alpha= alp;
}
var r:Number= Math.random();//ひとつひとつにまず与えるアルファ値用のランダムな数値
var alp:Number= 0+r; //アルファ値
var flg:int= 0; //フラグ
back.addEventListener(Event.ENTER_FRAME, doEnterFrame);
function doEnterFrame(e:Event):void{
if(flg == 0){
alp += 0.00001
if(alp>1) flg =1;
}else{
alp -= 0.00001
if(alp<0) flg=0;//ここの部分はアルファ値の上下のさせ方のつもりです
}
}

902Now_loading...774KB:2009/07/22(水) 00:29:00 ID:OgxTp0ic
(↑のつづきです)という物なのですが、
「TypeError: Error #1034: 強制型変換に失敗しました。"a_1" を flash.display.MovieClip に変換できません。
at kimsan_project_fla::MainTimeline/kimsan_project_fla::frame1()

というエラーが出てしまいます。
基本的な所が間違っているのでしょうが、いよいよ煮詰まってきてしまいました。。初歩的な質問で申し訳ないです、よろしくお願いいたします。
903Now_loading...774KB:2009/07/22(水) 01:02:12 ID:Vewr2WFE
>>900
「ムービークリップを配列に入れこみ」って var back:MovieClip=back_array[i] 
のこと?
型が全く違うじゃん。

これって、MC内部に記述する方法じゃ駄目なん?

あと、for (var i:int=1; i < 144; i++) じゃ、143個だ。
いきなり144個じゃなくて、5個くらいから基本を押さえながら
やった方がいい。
904Now_loading...774KB:2009/07/22(水) 01:14:17 ID:OgxTp0ic
>903
回答ありがとうございます。

for (var i:int=1; i < 144; i++) {
var back_array:Array = new Array("a_"+i)
でムービクリップを配列に入れて、
var back:MovieClip=back_array[i]
で配列からムービークリップから取り出しているつもりでした。
AS3.0だとムービークリップに直接記述ができないのと、できれば一括して管理できたら、と思っていました。
配列に入れたムービークリップのプロパティの設定をしたいのです。
個数違いの指摘、ありがとうございます。
905Now_loading...774KB:2009/07/22(水) 02:26:08 ID:Y2hWWQHX
//ムービークリップの数
const MOVIE_CLIP_NUM:uint = 144;
//ムービークリップが144個ならフラグも144個必要
var flgArray:Array = new Array(MOVIE_CLIP_NUM);
for (var i:int = 0; i < MOVIE_CLIP_NUM; i++){
//フラグ配列初期化
flgArray[i] = false;
//単に個々のムービークリップにアルファ値を設定したいだけなら配列に入れる必要はない
//配列アクセス演算子でムービークリップを指定してアルファ値にランダムな値を設定
this["a_"+(i+1)].alpha = Math.random();
}

//個々のムービークリップにEnterFrameを設定するのではなく
//一つのEnterFrameの中のfor文ですべてのムービークリップを設定する
stage.addEventListener(Event.ENTER_FRAME, doEnterFrame);

function doEnterFrame(e:Event):void{
for (var i:int = 0; i < MOVIE_CLIP_NUM; i++){
var mc:MovieClip = this["a_"+(i+1)];

if(!flgArray[i]){
mc.alpha += 0.1;
if(mc.alpha > 1) flgArray[i] = true;
}
else{
mc.alpha -= 0.1;
if(mc.alpha < 0) flgArray[i] = false;
}
}
}
906Now_loading...774KB:2009/07/22(水) 02:49:57 ID:OgxTp0ic
>905

ありがとうございます!!!!!
無事、望みの動きができるようになりました!!
解りやすい解説もつけていただいて、感謝です。研究し直します。
本当に、、、ありがとうございました!
907Now_loading...774KB:2009/07/22(水) 16:32:25 ID:cGrVaIpG
質問です。
TextFieldに貼り付けられたAS3のソースコードを
ハイライト表示してくれるライブラリとかってないですか?

D.evalを使って、コードを実行できるAIRアプリを作っているんですが、
その際、実行するコードのハイライト表示をしたいと考えています。
ご存じでしたら教えてください。
908Now_loading...774KB:2009/07/23(木) 00:58:30 ID:ON5lXHlf
>>907

hidemaruのhilightファイルを元に一からつくれば?
あと、D.evalでAS3を実行させるってのはセキュリティ的に大変危険では?
909907:2009/07/23(木) 03:00:53 ID:75IYDZBX
もし1から作るなら、秀丸のを参考にするのはいいですね。
ちょっと考えてみます。

D.eval+AIRのセキュリティのヤバさは、何となく知ってるつもりです。
むしろ、D.evalにチョンプロを食わせて、ファイルの一括処理などがができたら
(危ないけど)面白いなと思って作ってます。
910Now_loading...774KB:2009/07/23(木) 05:08:52 ID:KD//KRSC
http://alexgorbatchev.com/wiki/SyntaxHighlighter

このJavaScriptとCSSのライブラリがAS3のシンタックスハイライトに対応してるよ。
内容はJavaScriptで正規表現でマッチしたところにCSSのタグ追加して、CSSでハイライト
かけるみたいな感じだと思うけど。自分で作ると正規表現をちゃんとマッチさせるのが
面倒かも
911907:2009/07/23(木) 21:02:39 ID:75IYDZBX
>>910
ありがとうございます。
ちらっとソース読んだんですが、正規表現でゴリ押しっぽいですね。
結構参考にできそうです。

実際に動作確認してはいないのですが、ソースを読む限りE4XのインラインXML(?)と
/[0-9]+/gm みたいな形式の正規表現のハイライトには対応してないようです。

でもXMLにマッチする正規表現や、「正規表現にマッチする正規表現」はわりとネットに
転がってそうなので、自作の方向で考えてみます。

と思ったんですが、XMLの開始タグと
if (a<b == c>d)
↑な文の区別が付かなそうな気がしました。とりあえずがんばります。
912Now_loading...774KB:2009/07/25(土) 01:33:28 ID:WhtEhEuh
flvplayerを使って、swfを操作することできますか?
スライドバーや、プレイボタンを使ってswfのアニメーションを
コントロールしたいのです。
913Now_loading...774KB:2009/07/25(土) 01:59:11 ID:nUj1x3OR
できない
914Now_loading...774KB:2009/07/25(土) 15:46:33 ID:JEd7RU/r
四角の中にプレイヤーが入らないようにしたいです!
これでいいですか?

if(_root.maru._height < this._height && this.hitTest(_root.maru)){
if(this.getBounds(_root).xMin > _root.maru._x || this.getBounds(_root).xMax < _root.maru._x){
_root.maru._x = this.getBounds(_root).xMin;}
else{_root.maru._y = this.getBounds(_root).yMin;}
}
915Now_loading...774KB:2009/07/25(土) 17:34:30 ID:JORPJsSo
XMLのノードの値で、例えば、右記のように、<link>あああ</link>
<link></link>で囲まれたタグを、

Flashの中で、テキストフィールドの中にXMLデータとしてインサートして、
<link></link>なかで囲まれたものを、<a href=""></a>として自動変換するような
サンプルスクリプトをおしえていただけないでしょうか。

よろしくおねがいいたします。
916Now_loading...774KB:2009/07/25(土) 23:28:20 ID:54yblRjf
>>915
なんかそういう仕組みのアプリ作成依頼を
どこぞの業者が募集してたな
917915:2009/07/26(日) 08:00:56 ID:gTSrRi1Y
スクリプトでなく、アプリレベルでないと難しいですか?
918Now_loading...774KB:2009/07/26(日) 09:40:09 ID:OZY+fdi4
as3だったら正規表現でいけるよ
マッチングパターンはぐぐればいろいろでてくるでしょ
919Now_loading...774KB:2009/07/26(日) 10:34:13 ID:XHO4XY+8
replaceすりゃいい
920Now_loading...774KB:2009/07/26(日) 11:15:57 ID:lBJfG2In
Box2Dに自分で作成した画像を適用させる勉強をしていたのですがよくわからなくなりました。

http://d.hatena.ne.jp/matsu4512/20090103
このFlashのソースをダウンロードし、必要なライブラリ(Box2DとTweener)とソースに記載されているpngファイルを同じディレクトリに保存したのですが、CS3でムービープレビューしたところ
「1110:定数は初期化されませんでした。  private static const YukkuriImage:Class;」というエラーがでてきて実行できません。

どうしたらいいのでしょうか?
921Now_loading...774KB:2009/07/26(日) 14:38:52 ID:31GsuDQK
FlashCS3(AS3.0)をWinXPで使用。
beginGradientFillでの色配列で質問です。

var shObj:Shape = new Shape();
var grObj:Graphics = shObj.graphics; 
と定義して
grObj.beginGradientFill (GradientType.RADIAL, colorArr, alphaArr, raitioArr, mtArr, SpreadMethod.PAD, InterpolationMethod.LINEAR_RGB, -0.3);
colorArr[0]='0xCCCCCC'; colorArr[1]='0xCCCCCC';  
として最初全面灰色に塗りました。

次に、grObj.clear (); でクリアし、外部XMLから新しい色パラメーターを読み込んで
下記のようにしましたが反映されず、各々「勝手に」白,黒に変換されます。

colorArr[0]=MovieClip(root).parm0;//水色('0x8acad5') →白になる
colorArr[1]=MovieClip(root).parm1;//濃い空色('0x8aca6a') →黒になる
※目標は、ステージ中心から少し右にずれた所に中心を持つ同心円の水色→濃い空色のグラデーション

ところが、色配列には変数を使わずに直接 colorArr[0]='0x8acad5' などとすると
色設定が反映されます。
変数経由で色が変化しない理由は何故でしょうか?
922Now_loading...774KB:2009/07/26(日) 16:59:56 ID:U817qqWY
beginGraidentFillの配列のパラメーターって文字列じゃなくて数値じゃ
923Now_loading...774KB:2009/07/27(月) 09:47:34 ID:erGVcIY9
すみません。bmp の floodfill について質問させて下さい。
ColorPickerで取得した値(fgColorとする)で塗りつぶそうと思って

bmp.floodfill(posX, posY, fgColor.selectedColor);

とするのですが、上手く動きません。色の値を

bmp.floodFill(oldX,oldY,0xff0000ff);

みたいな感じで固定にすると上手く動くので、何か渡し方が違う気がするのですが
型は合ってるように思うので、どうも良く分かりません。
稚拙な質問で申し訳ないですが、ご教示いただけますと幸いです。
924923:2009/07/27(月) 09:49:18 ID:erGVcIY9
>>923
posX, posY のところ描き間違えました。こちらは

bmp.floodfill(posX, posY, fgColor.selectedColor);
bmp.floodFill(posX, posY, 0xff0000ff);

で上も下も同じ値です。色指定のところだけ違います。
どうぞよろしくお願い致します。
925Now_loading...774KB:2009/07/27(月) 09:59:12 ID:JVdruADD
>>924
ColorPickerはRGBで管理しててfloodFillはARGBじゃないのかな
bmp.floodfill(posX, posY, fgColor.selectedColor | 0xFF000000);
でいけんじゃない?
926Now_loading...774KB:2009/07/27(月) 10:28:30 ID:erGVcIY9
>>925
バッチリ動きました!! | 0xFF000000 で指定できるの知りませんでした。
もっかいリファレンス読んで勉強し直してきます!ありがとう〜!!
927Now_loading...774KB:2009/07/27(月) 16:31:11 ID:smsMTHs9
flashで「パブリッシュ」したswfをロード(loadSWF)すると
ルートオブジェクトがMainTimelineとなり、
「書き出し(イメージorムービー)」したswfをロードすると
ルートオブジェクトがMovieClipとなるのですが、
これらの違い、理由について分かる方いらっしゃいますか?
928Now_loading...774KB:2009/07/27(月) 16:34:12 ID:smsMTHs9
>>927 (SWFLoader.load)
929Now_loading...774KB:2009/07/27(月) 20:45:53 ID:04gZ0MoG
>>922
有難うございます。
parseInt('8acad5', 16)で10進法に変換すればOKでした。
930Now_loading...774KB:2009/07/27(月) 20:57:32 ID:bao8yyv2
CS3(9.0)のAS3.0でWinXP-Proです。
誤って操作したためか、タイムラインのAS表示が下のようになってしまいました。
http://uproda11.2ch-library.com/189411rpj/11189411.png

どうやら、改行はRを左右反転したような文字になり、スペースは「・」に変ってしまっています。
とっても醜いです。

元に戻すにはどうしたら良いでしょうか?
931Now_loading...774KB:2009/07/27(月) 23:29:31 ID:7+hKQJD7
>>930
手元で状況再現しないので何とも言えないけど、

(上部メニュー) > 編集 > 環境設定 > (左部メニュー) > ActionScript > フォント

で、フォントをMS ゴシックとかにしてみるとよいのでは?
932Now_loading...774KB:2009/07/28(火) 00:35:23 ID:4NA7Hxz1
>>930
Ctrl+Shift+8で解除出来る。
アクションパネル右上ボタンからでも可。
933Now_loading...774KB:2009/07/28(火) 00:36:26 ID:4NA7Hxz1
>>930
Ctrl+Shift+8で解除出来る。
アクションパネル右上ボタンからでも可。
934930:2009/07/28(火) 00:57:04 ID:tJxm7xIx
>>931-933
Ctrl+Shift+8で出来ました!

有難う!!!! Thanks a lot !
935Now_loading...774KB:2009/07/28(火) 03:08:41 ID:fV2ycU+D

var folder:File = new File("C:\\hoge\\");
var files : Array = folder.getDirectoryListing();

for(var i:int=0;i < files.length;i++){
var file : File = files[i];
ta.text+=files[i].nativePath+"\n"
}

フォルダ内のファイルを読み込むたびに
テキストエリアの表示を読み込んだファイル名に更新したいのですが
これだと全部読み込んだあとに一気に全部表示されます。

ひとつひとつ表示するにはどうすればいいのでしょうか
アドバイスお願いします
936Now_loading...774KB:2009/07/28(火) 03:43:41 ID:8IlY/PGJ
>>920
EmbedメタデータはCS3では使えないCS4から
937935:2009/07/28(火) 05:17:27 ID:fV2ycU+D
すみません、読み込みが一瞬で終わってるから
一気に表示されてるように見えるだけみたいですね。。。
938Now_loading...774KB:2009/07/28(火) 21:07:48 ID:NqKX55QH
FlashCS3(AS3.0,AIR_1.0)をWinXPで使用

AIRのソケットで外部のXML(パラメーターを書いたXML)を読み込み、それを元に
StageのMC内で描画を行いました。
これはこれで正しく動作したのすが、これとは別に外部フォルダにあるMP3をリスト化して
表示する動作で下記のエラーが出て困っています。

ReferenceError: Error #1065: 変数 ::xml は定義されていません。
at SongPropMC/onFrame()[SongPropMC::frame1:66]

※変数 xml は、ソケット通信のクラスで var xml:XML; と宣言して使用しているのみ。

しかし該当するクラスの記述を見てもXMLとは無関係のもので、しかも、SongPropMCは
65行までしかありません。
取りあえずSongPropMCのonFrame()は無効にしても問題ないので、これを消したところ
今度は下記のエラーが出ました。

ReferenceError: Error #1065: 変数 ::xml は定義されていません。
at SpectDisp/onFrame()[SpectDisp::frame1:33]

SpectDispもXML読み込みとは無関係です。
ハッキリ言ってモグラ叩きの状態です。また、エラーメッセージで指摘された行番号に
間違いがあれば対処しようがありますが、2番目のSpectDispにも33行というのはありません。

どなたか、アドバイス願います。
939Now_loading...774KB:2009/07/29(水) 07:35:57 ID:EDU5HyD+
FlashCS4(AS3.0)をWinXPで使っています。

シーン1のフレーム1に基本画面を、
シーン1のフレーム10にムービークリップA(全体で20フレーム)を
シーン1のフレーム20にムービークリップB(全体で30フレーム)配置しています。
全てのシーンにボタン1、ボタン2が表示されています。

ボタン押すと(連打してもそのつど)指定したムービークリップが最初から最後まで表示されるようにしようと
以下のようなコードをフレーム1に書きました。

// フレームをカウントする変数
var i:int = 0;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
Buttion1.addEventListener(MouseEvent.CLICK, onButton1Click);
Buttion2.addEventListener(MouseEvent.CLICK, onButton2Click);
// フレームごとに基本画面に移動するかチェック
function onEnterFrame(e:Event):void {
i--;
if ( i == 0 ) this.gotoAndStop(0);
}
// ボタン1クリック時
function onButton1Click(e:MouseEvent):void {
i = 20;
this.gotoAndStop(10);
}
// ボタン2クリック時
function onButton2Click(e:MouseEvent):void {
i = 30;
this.gotoAndStop(20);
}
940Now_loading...774KB:2009/07/29(水) 07:37:30 ID:EDU5HyD+
↑の続きです。。

ボタン1をクリック後(ムービークリップAが再生中)に
ボタン2をクリックすると、意図通りすぐにムービークリップBが
i=30で指定した30フレーム再生されます。

しかしボタン1をクリック後(ムービークリップAが再生中)に再度ボタン1をクリックすると
ムービークリップAはクリックから少し間をおいて再生されはじめます。
そして1度目のクリックで指定されたi=20と思われるあたりで
(2度目のクリックで再生されたムービークリップAは再生途中)
基本画面に戻ってきてしまいます。

このようなスクリプトで、
ボタン連打時にも対応する方法はありませんでしょうか。
よろしくお願いいたします。
941Now_loading...774KB:2009/07/29(水) 18:14:00 ID:X85rnVsV
すみませんが、socketクラスの送信バッファの仕様って、
容量どれくらいなんですか?

どうしても256バイトまでしか送信できないのですが・・・。
942Now_loading...774KB:2009/07/29(水) 18:16:55 ID:ZDMmBOvF
>>939
俺ならフレームをカウントするんではなく、再生中のムービーが最後のフレームに達したかをチェックするわ
ボタンがクリックされるたびにムービーはgotoAndPlayで頭から再生し直して
943Now_loading...774KB:2009/07/29(水) 23:03:57 ID:rwDk3QUs
すいません、リンケージしたサウンドを変数を使ってstartさせようとしてるんですが、
上手くいきません。

var se001:Sound = new Sound();
se001.attachSound("SE_HYUN");

i="se001";
[i].start(); ←この書き方がおかしい


最後のとこの文法が間違ってると思うのでどなたか修正していただけますか…
944943:2009/07/29(水) 23:31:44 ID:rwDk3QUs
あ、できた、なんでだろ。
自己解決です、すいません
945Now_loading...774KB:2009/07/30(木) 02:07:51 ID:Q7q9rOqV
ステージ上に3つ、クリックしたら外部swfを呼び出させるムービークリップを配置しているのですが、
どうしても3つ目が作動しないんです。

l_btn.addEventListener(MouseEvent.CLICK,dolClick);
function dolClick(evt:MouseEvent):void{
load_light();
}

で、たしかにインスタンス名をl_btnにしているのですが、、
l_btnの上にマウスをもって行っても、指の形にすらなりません。
しかし、コンパイルエラーも何も表示されません。
インスタンス名が間違っている以外で、正常に作動しない原因というものはあるんでしょうか?
946Now_loading...774KB:2009/07/30(木) 02:24:47 ID:Q7q9rOqV
>945

すみません、自己解決しました、申し訳ない。。。
947Now_loading...774KB:2009/07/30(木) 02:32:15 ID:TgA6O46d
書き込むと自己解決できる魔法のスレッド
948Now_loading...774KB:2009/07/30(木) 09:50:41 ID:vziOUVYx
とある女性と仲良くなりたいのですが
どうすればいいでしょうか?
声を掛けることすら出来ません
949Now_loading...774KB:2009/07/30(木) 09:53:42 ID:r054Uwy/
フラッシュMX2004

きちんと保存されずに困っています。

スクリプト変更→保存→次の日フラッシュ起動させると一部のスクリプトが変更されていない
あるMCに書いたスクリプトはきちんと保存されているのに他のMCに書いたスクリプトは元のままとか
そんな感じなんですが何が原因なんでしょうか?

決して保存し忘れとかではないです。
毎日フラッシュ起動後、どこかしら保存されてないので、
その部分の手直ししてから、その後の作業開始で効率が悪すぎて困っています。
お願いします。
950Now_loading...774KB:2009/07/30(木) 10:02:28 ID:gKBBvU3A
WindowsVista
CS4体験版

ボタンを押すとgotoAndStopやnextFrame、prevFrameで別フレームに飛ばすようにしてるんですけど、
(↓のような感じで)

next_btn.onRelease = function(){
this._parent.nextFrame();
}
lesson1_btn.onRelease = function(){
this._parent.gotoAndStop(5);
}

同じフレームに置いてる同じボタンでも効くときと効かない時があったり、
(goto〜の場合に)フレーム数で指定してるのに、
同じボタンを押しても違うフレームに飛ぶときがあったり(5に飛んでたのにたまに6に飛ぶなど)して混乱してるんですが

これはどうしてこうなってしまうのでしょうか?
951Now_loading...774KB:2009/07/30(木) 11:57:51 ID:Jtquc1pC
>>949
正規品ですか?アップデートしてますか?

>>950
必要なフレームが読み込み終わる前に、アクションを実行してるとか
952Now_loading...774KB:2009/07/30(木) 12:58:28 ID:kZIg9djd
なんだろね。MX2004はアクションパネルで押しピンみたいなの押してスクリプト固定すると、反映されないようなバグがあった気がするけど
953Now_loading...774KB:2009/07/30(木) 13:15:46 ID:r054Uwy/
お答えありがとうございます。

>>951
正規品です。
アップデートというのは
MXからMX2004へのアップデートとか言うことですか?
それならしてません。
最初にかったMX2004のままです。

>>952
押しピンは使ってますので
それなんですかね

とりえあず保存する時は押しピンを戻してからやってみます。
954Now_loading...774KB:2009/07/30(木) 13:52:16 ID:gKBBvU3A
>>951
ボタンを押すタイミング……とかそういうことですか?
見当違いなことを言っていたらすみません
955Now_loading...774KB:2009/07/30(木) 14:22:56 ID:Jtquc1pC
>>953
そうではなくて、2004用のアップデータね。Adobeにあるよ。

>>954
フレーム遷移を行う場合は、必要なフレームまで確実に読み込んでから
スクリプトを実行するように設計しないと意図した動作にならないよ、ってこと。
ネットで動画を見る時のように、Flashの実行にもファイルを読み込むには多少
(たとえ一瞬にみえても)の時間はかかるわけです。
で、たとえばフレーム1が読み込まれていても、フレーム15が読み込まれていなければ
その時点ではフレーム15に移動することはできません。
Flashには、ファイルの読み込み完了を検知する方法もあるので、それを使えば
この問題が回避できます。
もしかしてこれが>>950の原因じゃないかもしれないが、考えられる可能性のひとつ。
956Now_loading...774KB:2009/07/30(木) 15:01:29 ID:gKBBvU3A
>>955
全て読み込まれるまで操作を待つ、ということですか
ためしに十分に待った後操作をしましたが、今回の原因はそれではないようです

どうもnextFrameではなく、goto〜で直接フレームに飛んだ際に、
そのフレームにあるnextFrameやprevFrameのボタンが無効になっているように思えます。
一部、特定のフレームのみであって、直接フレームに飛んだ場合すべてが同じ状況になるわけではないです。
957938:2009/07/30(木) 15:06:32 ID:yL4vyFit
すいません。
何かヒントはないでしょうか?

ググっても1件だけ症状の報告があるだけです。
958Now_loading...774KB:2009/07/30(木) 15:06:46 ID:Jtquc1pC
>>956
だとすると、これ以上はもっと具体的な情報がない限りわからんです。
そもそも、たとえボタンが無効になっていなくても、フレーム遷移しただけでは
ボタンのアクションは実行されないはず。
trace()するとか、flaの内容を簡略化するとかして、再現の条件を絞り込んでみるのがよさそう。
959Now_loading...774KB:2009/07/30(木) 15:14:24 ID:gKBBvU3A
>>958
onReleaseの中でtraceしてみたんですが
なんかボタンが上手く動いているときにすら出力がなされないというよくわからない結果になりました……
960Now_loading...774KB:2009/07/30(木) 17:41:48 ID:JI885zbu
>>959
同じインスタンス名のボタンやらが
ステージ上に重なって2つ以上あるとかない?
961Now_loading...774KB:2009/07/30(木) 19:47:34 ID:gKBBvU3A
>>960
そういうことも特には……

ちょっと長いこと悩みすぎてるんでここいらで終わらせてしまいます
ありがとうございました
962Now_loading...774KB:2009/07/30(木) 19:51:47 ID:ZWLf89EU
>>961
ボタンはどうやって配置してるの?
actionscriptで配置してたりする?
963Now_loading...774KB:2009/07/30(木) 20:24:32 ID:gKBBvU3A
>>962
ライブラリで作ってそこからドラッグで持って行っていますが
964Now_loading...774KB:2009/07/31(金) 17:26:45 ID:wW3yEn/+
なんかスプライト同士がくっついた時に、それをキャプチャーして
そのスプライト同時を画像にする事は可能ですか?
965Now_loading...774KB:2009/07/31(金) 22:35:05 ID:PMVsfUGA
>>955
アップデートしてみました。
おかげで今日はきちんと保存されてました。
ありがとうございました。
966Now_loading...774KB:2009/08/01(土) 11:23:51 ID:in6hWdnU
BitmapData
967Now_loading...774KB:2009/08/02(日) 15:44:56 ID:TaflAZnC
AS2、parafla、vistaです。
ローカルに変数を保存しようと思っています。
paraflaのプレビューでは、paraflaを再起動させても保存されているのが確認できます。
しかしswfファイルを再生した場合、一度終了させると保存されていません。
どうしたら保存がうまくいくでしょうか。下にコードも書いておきます。

so = SharedObject.getLocal("data"); //書き込み
so.data.hiscore = _root.score;

so = SharedObject.getLocal("data"); //読み込み
_root.hiscore_text = so.data.hiscore;
968Now_loading...774KB:2009/08/02(日) 20:24:01 ID:66yggHSp
保存確認はどうやってるの?
data.solの有り無しorタイムスタンプだけで調べてる場合は
保存場所がプレビュー時と違ってるとか?
969Now_loading...774KB:2009/08/02(日) 22:45:05 ID:ph0efH/F
質問です。
xp/AS3でoverrideをしようとしてるのですがうまくいかず
「1020:override としてマークされたメソッドは、別のメソッドをオーバーライドする必要があります。」
というエラーがでます。

overrideしようとしてるのは、papervison3dのdrawParticleです。

何か原因に心当たりがある方はいらっしゃいませんか?
970Now_loading...774KB:2009/08/03(月) 00:30:21 ID:jzVO9nNY
写真が5秒ごとに切り替わるスライドショーを作りました。
mcに写真を格納するのですが、
removeChild(mc)
として確かに表示が消えているのですが、
numChildrenでstage上の子オブジェクトの数を数えると、
どんどん5秒ごとに一つずつ値が増えていってしまいます。

mc = nullと加えてもだめでした。
どうやれば、確実にnumChildrenの値をずっと、
1に保つことができますか?

数が増えていくってことは、メモリを食って言ってるってことですよね?
971Now_loading...774KB:2009/08/03(月) 00:31:51 ID:jzVO9nNY
※すみません、970です。足りない部分があったので、
再度書き込みます。

写真が5秒ごとに切り替わるスライドショーを作りました。
mcに写真を格納する仕様です。
5秒経過後に、
removeChild(mc)
としていったん、mc自体を消します。
そしてまたmcを表示して、次の写真を表示します。

これを行うと、確かに表示が消えているのですが、
numChildrenでstage上の子オブジェクトの数を数えると、
どんどん5秒ごとに一つずつ値が増えていってしまいます。

mc = nullと加えてもだめでした。
どうやれば、確実にnumChildrenの値をずっと、
1に保つことができますか?

数が増えていくってことは、メモリを食って言ってるってことですよね?
972>>967:2009/08/03(月) 09:21:56 ID:ujJFBngZ
>>968
レスありがとうございます。
保存確認は特にしていません。
あと、プレビュー時とswf実行時の保存場所は違っていても良いです。
しかし、swf実行で保存したはずのデータも、次のswf実行時には消えています。
973Now_loading...774KB:2009/08/03(月) 12:42:23 ID:mmKf45dT
>>972
保存確認というのは、つまり、何をもってして「データが消えている」
「保存されていない」という判断をしているのか?ってことじゃないかな。
単に確認の仕方が悪くて、保存されていないように見えてるという可能性はないのかどうか。
ところで、任意の時点で保存したいなら、flush()したほうがいいよ。
974Now_loading...774KB:2009/08/03(月) 15:59:41 ID:4G00Ridm
質問です。

下記のようなxmlを表示させたいのですが
その場合のXPathの書き方ってどうなるのか不明です

<example id='1' name='abc'>


nameの中身を取り出したい場合の記述がわからず。

失敗例)
aa['example'] = XPathAPI.selectNodeList(xml.firstchild,"example/[@id=*]")

環境はAS2.0、
xmlのverは1.0です

以上、よろしくお願いします
975Now_loading...774KB:2009/08/03(月) 16:27:27 ID:jzVO9nNY
AS3初心者です。よろしくお願いいたします。
下記にようなエラーが発生しました。

何が原因なのかエラー一覧のAdobeの公式をみてもわかりませんでした。

エラー内容

--1084: シンタックスエラー : identifier が ○○ の前に必要です。--

上記が何をどう示しているのか皆目検討がつきません。
ご指南ください。 よろしくお願いいたします。
976Now_loading...774KB:2009/08/03(月) 17:13:43 ID:FdwocMVL
var or function
977Now_loading...774KB:2009/08/03(月) 17:23:18 ID:ujJFBngZ
>>973
ローカルに保存した変数を普通の変数に代入し、テキストボックスに表示させているので
そのテキストボックスを見て確認しました。
また、保存フォルダを見てみると、paraflaのプレビューで作られたsolファイルはありますが
それ以外には見当たりません。なお、flush()しても変わりませんでした。

プレビューなら正しく動くということは、AS以外の問題である気がしてきました…
あまり長引くのも迷惑かと思うのでもう終わりにしても構いません。
回答してくれた方々、ありがとうございました。
978Now_loading...774KB:2009/08/03(月) 22:13:42 ID:TmhPyRuY
AS3,FlashDevelop,FlashPlayer10で開発してます。

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, traceData);
loader.load(new URLRequest("xml.xml"));

private function traceData(event:Event) : void {
var xml:XML = new XML(loader.data);
var xmlList:XMLList = xml.item;
trace(xmlList.length);
}

<?xml version="1.0" encoding="utf-8"?>

<data>
<item id="1">
<name>DQ</name>
<price>80</price>
</item>
<item id="2">
<name>FF</name>
<price>100</price>
</item>
<item id="3">
<name>TOV</name>
<price>120</price>
</item>
</data>

これでEvent.COMPLETEのメソッドは呼ばれるんですが、
取得したデータの中身が空っぽで、lengthが0になってしまいます。
どうかご指南ください。
979Now_loading...774KB:2009/08/03(月) 22:40:04 ID:0kLh3GXr
>>978
URLLoader.dataFormatの指定がいるかも
>URLLoaderDataFormat.TEXT の場合、受け取るデータは、読み込まれたファイルのテキストを含むストリングです。
>URLLoaderDataFormat.BINARY の場合、受け取るデータは、生のバイナリデータを含む ByteArray オブジェクトです。
>URLLoaderDataFormat.VARIABLES の場合、受け取るデータは、URL エンコードされた変数を含む URLVariables オブジェクトです。
>デフォルト値 : URLLoaderDataFormat.TEXT.
980Now_loading...774KB:2009/08/04(火) 00:31:09 ID:xT8iMwDP
失礼します、質問させて下さい。環境はFlashCS3 の AS3.0です。
ボタンクリックで、時差でムービークリップを再生後に動くようにしたく、Timerを組み込んで作っています。
中に入るムービークリップが入れ替わりたいため、それぞれa_1 a_2 a_3〜というようにインスタンス名をつけています。
今、仮にスクリプトを組んでいるのですが、クリックでa_3は動くものの、Timerを作動させて再生&動かすa_1 a_2に関しては
「条件は未定義であり、プロパティがありません。」と出てしまいます。
先に変数 ii を宣言し、それを後の this["a_"+(ii+1)]というように代入させていっているのですが、
Timer内のものたちには数値がきちんと代入されていない、ということなのでしょうか。
ひとつの変数をすべてに生かすことは、できないのでしょうか?
大変初歩的な質問で申し訳ありません、、教えて頂けると幸いです。


981Now_loading...774KB:2009/08/04(火) 00:33:24 ID:xT8iMwDP
980です。仮に組んだスクリプトは、以下の通りになります。
var ii:int = 1;
a_btn.addEventListener(MouseEvent.CLICK,xClick);
function xClick(evt:MouseEvent):void {
this["a_"+(ii+2)].play();
var a_3xTimer:Timer = new Timer(900,1);
a_3xTimer.addEventListener(TimerEvent.TIMER,do3xTimer);
function do3xTimer(e:TimerEvent):void {
this["a_"+(ii+2)].x += 57
}
var a_2Timer:Timer = new Timer(200,1);
a_2Timer.addEventListener(TimerEvent.TIMER,do2Timer);
function do2Timer(e:TimerEvent):void {
this["a_"+(ii+1)].play();
}
var a_2xTimer:Timer = new Timer(1100,1);
a_2xTimer.addEventListener(TimerEvent.TIMER,do2xTimer);
function do2xTimer(e:TimerEvent):void {
this["a_"+(ii+1)].x += 57
}
982Now_loading...774KB:2009/08/04(火) 00:36:40 ID:xT8iMwDP
//981のつづきです

var a_1Timer:Timer = new Timer(400,1);
a_1Timer.addEventListener(TimerEvent.TIMER,doTimer);
function doTimer(e:TimerEvent):void {
this["a_"+ii].play();
}
var a_1xTimer:Timer = new Timer(1300,1);
a_1xTimer.addEventListener(TimerEvent.TIMER,do1xTimer);
function do1xTimer(e:TimerEvent):void {
this["a_"+ii].x += 57
}
a_3xTimer.start();
a_2xTimer.start();
a_1xTimer.start();
a_1Timer.start();
a_2Timer.start();
}
983Now_loading...774KB:2009/08/04(火) 01:53:08 ID:Kq0quiXn
それぞれのタイマーのaddEventListenerで指定しているリスナー関数が、関数xClick内にあるためthisの参照先が変わっているからです
関数
do3xTimer
do2Timer
do2xTimer
doTimer
do1xTimer
をxClickの外に書けばいいと思います
984Now_loading...774KB:2009/08/04(火) 02:33:42 ID:xT8iMwDP
>983さん

ありがとうございます、無事解決できました!!
xClick関数でいうthisとは、xClick命令をかけているa_btn自身になってしまう、というかんじなのですね、
納得です。。。
985Now_loading...774KB:2009/08/04(火) 05:38:33 ID:V1icudO4
>>979
お答えいただき、ありがとうございます。
しかしURLLoader.dataFormatを変えても
XMLファイル内のデータを取得できませんでした。
loader.bytesLoadedプロパティでみても0と出てきてしまいます。

もう少しがんばってみます
986Now_loading...774KB:2009/08/04(火) 10:39:44 ID:BCHoRaF0
Flash Player 9 です。

外部の mp3 ファイルを再生しようとしています。
例えば test.mp3 を再生します。

var mcSound:Sound = new Sound( this );
mcSound.loadSound( "test.mp3", true );

ところが、結果は、
早送りみたいな再生になってしまって、
8分あるはずの mp3 ファイルが
1分ほどで早送りの音で再生されてしまいます。

ビットレートや長さが違う mp3 ファイルに代えても
結果は同じで、早送りみたいな再生になってしまいます。

どうすれば普通に再生してくれるでしょうか?
987Now_loading...774KB:2009/08/04(火) 10:48:19 ID:JEqDeZnR
>>986
間違いなくMP3側の書き出し設定の問題
サンプリングレート:44100Hz
ビットレート:128kpbs
あたりで書きだして読み込んでみ?
988Now_loading...774KB:2009/08/04(火) 10:57:46 ID:JEqDeZnR
>>985
lengthじゃなくてlength()じゃねーのかな
たぶん読み込めてんじゃない?
trace(xmlList.length(),xmlList[0]);
989Now_loading...774KB:2009/08/04(火) 11:07:03 ID:BCHoRaF0
>>987

おっしゃる通りでした。
モノラルで 16kbps, 32kbps の mp3 ファイルでは
上述のように早送りになってしまったのが、
64kbps にしたら、正常に再生してくれました。

低ビットレートの mp3 ファイルを
普通に再生する方法はないのでしょうか?
990Now_loading...774KB:2009/08/04(火) 12:26:56 ID:RVAbsNtM
FLASHとMYSQLを連携するのに一番簡単なのはPHPを使う方法ですか?
991Now_loading...774KB:2009/08/04(火) 12:47:54 ID:Rchse4OL
オライリー「詳説 ActionScript 3.0」ですが、CS4の環境で学習書とするには
内容が古いでしょうか?
高価なものなので悩んでいます。
992Now_loading...774KB:2009/08/04(火) 13:01:45 ID:d57xYwwQ
>>990

assqlってライブラリがあるらしいよ。
詳細は自分で調べて

ttp://code.google.com/p/assql/
993Now_loading...774KB:2009/08/04(火) 13:12:50 ID:JEqDeZnR
>>991
AS3.0の本だからCS4でも問題ないんだけど、あの本は1冊目に読む本では無いかなあ
良い本なので、持ってて損はしないけど、ちょっと深めの話題なんだよね
難しいとかではなく、「なんでAS3.0はこういうつくりなのか」という事が載ってる本
994Now_loading...774KB:2009/08/04(火) 13:22:40 ID:JEqDeZnR
>>989
外部サウンドを読み込んで使う方法じゃあ、無いんじゃないかなあ
効果音みたいなものだったら、Flashだったらライブラリに埋め込んでおいて、Flashをパブリッシュする際にビットレート落として書きだすとかできるんじゃないかな
995991:2009/08/04(火) 16:54:04 ID:Rchse4OL
>>993
Flash本体の学習書は別ですが、AS3.0では1冊目で、少々高くても1冊で済めばと考えました。
原著が2年前ですし、どこかで古い(FlashPlayer10向けには?)という書評を見かけたもので
一度は決めたんですけど心配になりました。書店で立ち読みしても判断付かないんですよね。
オライリー本は好きで、JSやCSSなどを学習しています。

最近の入門書を含めて再検討してみます。ありがとうございました。
996Now_loading...774KB:2009/08/04(火) 16:59:35 ID:0+uGJArf
>>995
ああいう本は、ある程度やりたいことが出来るようになってから
知識と応用範囲を広げるために読む門じゃないのかな
面白いのは分かるけど、読むことが目的になりがちなので注意
997Now_loading...774KB:2009/08/04(火) 18:55:37 ID:R19pxm6s
AS3.0で、文字列比較がうまくいきません。
文字コードなどは関係あるのでしょうか?

ついでに次スレ建てておきます。
http://pc12.2ch.net/test/read.cgi/swf/1249379608/
998997:2009/08/04(火) 21:02:46 ID:R19pxm6s
自己解決しました。

ByteArrayを.toString()で文字列にして比較したのが間違いでした。
ByteArrayを.readUTFBytes()で読み込んで等価比較したらif文がすんなり通りました。
1時間悩んだのが恥ずかしいですw
999Now_loading...774KB:2009/08/05(水) 00:01:20 ID:joiUa8TU
kinenn kakiko
1000Now_loading...774KB:2009/08/05(水) 00:02:30 ID:joiUa8TU
umeume
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。