07/10/10 21:15:56 vLjJ+vOU
>>589
レス有り難うございます。ここでの「出来ない」とは、『宛先(PHS)にメールが届かない』
という意味です。その後、変数のパスに問題がありましたので、修正したところ、以下の
JPGのエラーメッセージが現れました。
URLリンク(vista.crap.jp)
黒塗りの後から cgi-bin/mailtome.cgi の部分があり、その後に送りたい文字列が現れ
ています。文字列中に%が頻出するのは、元の送信データを、提案頂いた LoadVars()
でUTF-8にコーディングしているからです。
※元の送信文の構成:
UIコンポーネントによるチェックボックスのtrue/false,数字(1994),アルファベット(fukuda)
漢字氏名(福田),題名(TestCGI)。 これらは、myLV = new LoadVars(); でmyLVオブ
ジェクトを作り myLV = new LoadVars(); でエンコードしています。
LoadVarsによるUTF-8へのエンコードは『逆引き大全550』に載っていますが、これによる
送信方法は分かりません。引き続きアドバイス願います。
※チェックボックとテキスト入力によるアンケートなどの結果を、UTF-8変換し、CGIでPHS
のメアドに送信するのが最終目的です。
596:Now_loading...774KB
07/10/10 21:34:46 iawLxwa7
そもそも、メール送信CGIは用意してあるの?
そのCGIはFlash経由じゃない場合、きちんとメールが送信できるの?
597:Now_loading...774KB
07/10/10 21:55:03 KI4ImEBG
>abc@xxx/cgi-bin/mailtome.cgi
なんでメールアドレスとcgiが一緒になってんの?
こんなことできたっけ?
598:588&595
07/10/10 23:01:13 Woeg7VRk
>>596
基本的なところに立ち返りますが、通常はメール送信CGIというのを別個に
用意しなけれればならないのでしょうか?
>>597
「逆引き大全550」のSmple545をそのままコピペすると
this.getURL("○○@××.com/cgi-bin/mailtome.cgi", "_blank", "POST");
//メール用信用デーモンにPOSTでパラメータを送る
です。
この部分を含め、ほとんどをそのまま利用しました。このflaファイルそのものをUpしたいの
ですが、著作権上問題があるとみて躊躇しています。
なお、別のプロバイダのメアドを ○○@××.com の部分に使いましたが、同じような
エラーが出ました。
599:Now_loading...774KB
07/10/10 23:06:03 m6g40JCr
>>598
> 通常はメール送信CGIというのを別個に
> 用意しなけれればならないのでしょうか?
しなければなりません。
600:597
07/10/10 23:27:03 KI4ImEBG
>>598
>>588をよく見たら
>メール用信用デーモンにPOSTでパラメータを送る
って書いてあったね。ごめん。メール用信用デーモンってなにか知らないけど
abc@xxx/cgi-bin/mailtome.cgiで送れるようになってるんだろうね。きっと。
cgiを用意できるなら
mailto = "○○@××.com";
msg = "メッセージ";
this.getURL("./cgi-bin/mailtome.cgi", "_blank", "POST");
で送ってcgi側でmailtoとmsgを取得。
用意できないなら
mailto = "hoge@hoge.com";
subject = escape("件名");
body = escape("本文");
this.getURL("mailto:"+mailto+"?subject="+subject+"&body="+body);
で我慢。
601:588&595
07/10/11 00:21:04 WmXwhj7I
>>599-600
有り難うございます。現在プロバイダにCGIの可否を問い合わせています。(先行して)600さんの
方法で実行しましたが、何の変化(応答)もありません ・・・本来はメーラーが立ち上がって送信
されるのでしょうか?
念のため、ボタンMC内のASを全て書きます。
on (release) {
System.useCodepage = true;
//エンコード方式をShift-JISに変更
mailto = "abc@xxx";
mailSubjectT = escape(_parent.mailSubjectT);
bodyMsgT = escape(_parent.bodyMsgT);
trace("Data= "+_parent.mailSubjectT+", "+_parent.bodyMsgT);
//
this.getURL("mailto:"+mailto+"?subject="+mailSubjectT+"&body="+bodyMsgT);
//
mailSubjectT = unescape(mailSubjectT);
bodyMsgT = unescape(bodyMsgT);
}
間違いをご指摘下さい。
それと、msg = "メッセージ"; で件名と本文が自動的に区分けされるのでしょうか?
602:Now_loading...774KB
07/10/11 01:16:42 x8KYzIaC
>>601
うちではそれでメーラーが立ちあがるよ。
プレビューじゃなくてブラウザ経由で確認してますか?
メールフォームのようにサーバからメールを送るには、CGIが必要でそれは自分で
用意しなくてはなりません。
CGIについての知識が皆無な場合、自分で多少なりとも勉強する必要もあるでしょう。
とにかく、Flash単体でメールを送信することはできません。
ただし、OSに依存する機能ですがメーラーを立ち上げることはできます。
それが、上で解説されているgetURLで"mailto:"を指定する方法です。
ただし環境によって動作が変わったりしますので、件名や本分がきちんと入らないケースも
あるようです。
603:Now_loading...774KB
07/10/11 01:32:44 n4LYUyeu
>>588
その mailSubjectT と bodyMsgT は何にも使ってないようだね。
他の部分に問題がありそう。
そのサンプルの頭に「Sample544の続きです」とか
その章の頭に「環境を整える方法」とか書かれてない?
604:Now_loading...774KB
07/10/11 01:34:50 if9OzS9V
同じ機能でラベルだけ変えたボタン(movieclipで作成)を複数並べたいとき、
スマートな作りってどんな感じのがありますか?
ラベルにテキストフィールドを使ったら簡単だったんですけど、
絵でやろうとしたら、いいアルゴリズムが思いつきませんでした。
最悪、必要なボタンを個別に作ればいいんですけど、その前に
定番のやり方とか、いいアイデアがあれば教えてくださいませ。
ちなみに、やりたいことは単純で、
ボタンを押すとファイルを読んでその内容が表示される。
ボタンごとに割り当てられたファイルは異なり、ラベルの絵も異なる。
読み込みおよび表示用の関数は完全に同じ。
ボタンのラベルは、マウスのon/off、現在表示中、で絵が切り替わる。
これだけです。
605:Now_loading...774KB
07/10/11 02:24:02 n4LYUyeu
>>604
個人的にそういうMCにコード入れたくないので、
MC側は差の発生する最低限必要な絵だけ作って置いて、
AttachClickEvent(mc1, "file1.jpg");
AttachClickEvent(mc2, "file2.jpg");
こんな感じで対応が一覧で見えるようにして、関数側にメインの処理書く。
function AttachClickEvent(targetmc, filename){
targetmc.onRelease = function(){
this.textbox.text = filename;
};
}
この3行目を別の関数にする時クロージャ関係でちょっと苦労するかも。
606:588&595&601
07/10/11 08:52:59 Imv5jEPW
>>602
すいません。プレビューでやっていました。
>>603
「環境を整える方法」は書かれていません。さも当然のように(誰でも)
メールCGIが使えるような記述です。ただし、手元の本は2005年4月版
なので最新版は分かりませんが。
607:_
07/10/11 15:20:17 8j07Lqtw
>>592
すいません.それを全部貼り付けて実行したのですが何も出てこないのですが・・
どういうことなんでしょうか?
608:Now_loading...774KB
07/10/11 16:44:00 4NtPYZv5
>>607
ActionScript3で書いてるので、パブリッシュ設定をActionScript3にしないと動かないです。
609:Now_loading...774KB
07/10/11 17:15:14 iSfms2At
>607
this.createEmptyMovieClip("box", this.getNextHighestDepth());
box._x=100;
box._y=100;
box.beginFill(0xFF6600);
box.moveTo(0,0);
box.lineTo(0, 80);
box.lineTo(50, 80);
box.lineTo(50, 0);
box.lineTo(0, 0);
box.endFill();
610:Now_loading...774KB
07/10/11 22:40:12 yzDtfjxL
aというムービークリップを配列mc_a[0],mc_a[1],mc_a[2]に入れて、場所を変えようとしたのですが、うまくいきません。
as3.0です。以下、ソースです。
.fla内
var aaa:contents = new contents(a);
aaa.dot();
.as内
package {
import flash.display.*;
import flash.events.*;
public class contents {
var my_mc:MovieClip;
var mc_a:Array = new Array();
public function contents(mc:MovieClip) {my_mc = mc;}
public function dot():void {
for (i=0; i<3; i++) {
mc_a[i] = my_mc;
}
mc_a[0].x = 35;
mc_a[1].x = 135;
mc_a[2].x = 335;
}}}
611:Now_loading...774KB
07/10/11 23:14:33 yzDtfjxL
addChildとかをやっていたら、できました。
ご迷惑おかけしました。
612:588&595&601
07/10/11 23:18:35 VySIJ5K4
(FlashでCGIを使ってメールを送る質問の続き)
プロバイダに問い合わせたところ、CGIはそのプロバイダが用意したHtmlによる
掲示板とアンケート用CGIしか利用できないそうです。従って600さんの2番目の
ASを使うことにしました。
仕組みは若干変更して、root上に置いたボタン内に
on (release) {
System.useCodepage = true;
//エンコード方式をShift-JISに変更
mailto = "abc@xxx";
subject = escape(subjectT);
body = escape(cgiDataT);
this.getURL("mailto:"+mailto+"?subject="+subject+"&body="+body);
}
としました。一応、メーラーは立ち上がり、宛先も希望の abc@xxx になっていまし
たが、件名と本文は空白でした。これは602さんのコメントのように、環境依存で入
らないのかも知れません。
とりあえず、LoadVarsクラスによるエンコードは成功していますので、アンケート自体
のAS作成は続けます。
色々、有り難うございました。
613:Now_loading...774KB
07/10/12 07:51:51 la7NNrTi
>>594
スキンを変える。もしくは、テキストフィールドを使って.border=false;にするとか。
614:Now_loading...774KB
07/10/12 11:08:05 Hf3zl0dE
クラスについて勉強中なのですが、いまいちクラス&インスタンスメンバがハッキリ理解できません
↓はタイムラインに書いていたflvビデオ再生のスクリプトをASファイル用にしてみたのですが
一応動きますがstaticなど使わずつらつらと全部コンストラクタに書いてしまって、これでいいのかなとちょっと不安です
クラス&インスタンスメンバ+コンストラクタな正しい形への修正箇所があればご指摘お願いします
class FlvPlayer {
var connect_obj:NetConnection;
var stream_obj:NetStream;
var videoSound:Sound;
//コンストラクタ
function FlvPlayer(flv_video:Object) {
connect_obj = new NetConnection();
connect_obj.connect(null);
stream_obj = new NetStream(connect_obj);
flv_video.attachVideo(stream_obj);
videoSound = new Sound(dummy_mc);
dummy_mc.attachAudio(stream_obj);}
//ビデオ消音
function volumeStop() {
videoSound.setVolume(0);}
//ビデオ再生
function videoPlay() {
stream_obj.setBufferTime( 5 );
stream_obj.play( "video.flv" );}
}
↓タイムラインのスクリプト
var flvPl:FlvPlayer = new FlvPlayer(flv_video,dummy_mc);
flvPl.volumeStop();
flvPl.videoPlay();
615:Now_loading...774KB
07/10/12 13:38:19 yQkbsrTW
AS3の質問です。
ムービークリップが終わってから、
次のムービークリップに行きたいのですがどうすればいいのかわかりません。
var _01:mc_01=new(mc_01);
var _02:mc_02=new(mc_02);
addChild(_01);
addChild(_02);
_01.gotoAndPlay(1);
_02.gotoAndPlay(1);
mc_01(フレーム数は未知)が終わってから、mc_02を始めたい。
616:Now_loading...774KB
07/10/12 17:06:02 y7UWNVJI
>615
AS3って、varでいきなりオブジェクトのプロパティを宣言できるの?
AS2なら、「var _01:MovieClip=new Object();_01.mc_01~」って、
2段階に分けないといけないけど。
あと、_01が終わったら云々の場合、AS2ならこうなる。
※フレームアクションでの記述例。クラスファイルだと
イベントハンドラ内部のデフォルト参照に自動的にthisがつくので
意味が変わってしまう。
var _01;MovieClip;
var _02;MovieClip;
_01.onEnterFrame=function(){
if (this._currentFrame>=this.totalFrame){
_02.gotoAndPlay(1);
}
}
617:Now_loading...774KB
07/10/13 19:58:17 3y0DHD2R
Actionscript勉強中です
環境 Flash8 winXP
FLVPlaybackコンポーネントを使用してflvを再生する時に
マニュアルにて
import mx.video.*;
my_FLVPlybk.autoPlay = false;
my_FLVPlybk.contentPath = "URLリンク(www.helpexamples.com)
my_FLVPlybk.seek(3);
my_FLVPlybk.play();
と書いてあります
自動再生はmy_FLVPlybk.autoPlay = false;を書けば設定できますが、swfファイルを表示した時にファイルを取得(seek)しないでplayボタンを押した時にファイルを取得する設定にするにはどのように書いたらいいのでしょうか?
(youtubeのような動きで)
618:617
07/10/14 03:12:14 zWroxzVw
>ファイルを取得(seek)しないで
バッファリングの間違いだと思います
619:Now_loading...774KB
07/10/14 03:27:48 D7S7QXwg
>617
ボタンにイベント設定すればいいんじゃね?たとえば
var my_FLVPlybk;
|
スクリプト書く
|
myButton_btn.onRelease=function(){
my_FLVPlybk.seek(3);
my_FLVPlybk.play();
};
620:617
07/10/14 13:18:33 WOvlYYa8
レス有難う御座います
ボタンにイベントを設定する場合、skin(SteelExternalAll.swf)を使っているとそのskinのflaファイルを編集するという事ですか?
FLVPlaybackコンポーネントの再生ボタンを指定するにはどうしたらいいのでしょうか?
621:Now_loading...774KB
07/10/16 22:07:35 qXpyYf9M
質問です。
環境:winXP Flash8pro
書出し:ver.8 AS2.0
オープニングムービーを初回訪問時のみ再生し、
次回から表示させないようにするため、
SharedObjectクラスの使用を考えています。
ユーザーがセキュリティの設定でローカルへのデータ保存をOFFに
設定している場合は有効になりませんが、それ以外ブラウザ等で、
環境によってSharedObjectが使えないといったことはあるのでしょうか?
知っている方おられましたら、情報お願いします。
622:Now_loading...774KB
07/10/17 00:32:27 QRs4mHQ+
スクリプトの書き方(2.0)の事で質問させて下さい
class Bottons {
var MC1:MovieClip;
var MC2:MovieClip;
var MC3:MovieClip;
var MC4:MovieClip;
var pressN:Number
function Bottons(m1:MovieClip ,m2:MovieClip ,m3:MovieClip ,m4:MovieClip) {
MC1 = m1;
MC2 = m2;
MC3 = m3;
MC4 = m4;
}
function bottonP(pressN:Number) {
if(pressN == 1) {
MC1.gotoAndStop(2);
MC1.enabled = false;
MC2.gotoAndStop(1);
MC3.gotoAndStop(1);
MC4.gotoAndStop(1);
MC2.enabled = MC3.enabled = MC4.enabled = true;
}
if(pressN == 2) {
MC2.gotoAndStop(2);
MC2.enabled = false;
(以下略)
1フレーム目に押される前の絵、2フレーム目に押された時の絵のmcボタン(botton1~4)を配置し、一つのmcボタンを押した時に
押したmcボタンに付いた数字をbottonP関数の引数に送りチェック
押したボタン自体を押せなくしてフレームを2に移動、その他のmcボタンのフレームを1に&押せるようにする、といった事を打ったのですが
↑のように、変数指定やメゾットをどうもだらだらと書いてしまう書き方しかできません・・・
もっとスッキリとした効率の良い書き方があれば勉強の為にも教えて下さい
623:Now_loading...774KB
07/10/17 00:50:25 lKIBMR2h
>>622
class Bottons {
private var _mcList:Array;
function Bottons():Void {
_mcList = new Array();
}
public function addItem(mc:MovieClip):Void {
_mcList.push(mc);
}
public function bottonP(pressN:Number):Void {
for(var i=0; i<_mcList.length; i++) {
var mc:MovieClip = _mcList[i];
if(pressN == i) {
mc.gotoAndStop(2);
mc.enabled = false;
} else {
mc.gotoAndStop(1);
mc.enabled = true;
}
}
}
}
624:Now_loading...774KB
07/10/17 08:39:22 E55ld3QG
>>622
状況に合わせて少数のボタンの有効無効を設定するなら、ベタに書いた方が
解りやすいし、後々修正するときにも簡単にできる。
短いコーディングがスマートというわけではなく、解りやすくて修正しやすいコーディングの方が良いよ。
625:Now_loading...774KB
07/10/17 14:05:25 vEXp6IqN
質問です。
テキストフィールドに、stylesheetとtextformat両方を指定した場合
片方しか有効にならないのですが、これは仕様なんでしょうか?
環境は WinXP, Flash8, AS2 です。
626:Now_loading...774KB
07/10/17 14:46:45 UWqk762w
Bottonってボットン?
627:Now_loading...774KB
07/10/17 14:50:13 eGxIedqm
フレームラベルを指定して飛んだときに、1つ前のフレームから再生されるのですが
これはそういう仕様なんでしょうか?それともなにかミスが考えられるのでしょうか・・
MX2004です
628:Now_loading...774KB
07/10/17 14:57:53 mvIPS4vV
>>627
そんな仕様はない。
ひとつ前のフレームから再生しているように「見えている」だけ、とか
別のASが邪魔してるとか、移動先のフレームがまだ読み込まれてないって可能性はない?
629:622
07/10/17 16:34:00 QRs4mHQ+
>>623-624
レスありがとうございました、624様のお言葉も頭に置きつつ、623様の書かれたスクリプトも参考にさせて頂きます
630:Now_loading...774KB
07/10/17 17:43:44 jLB/9o3N
>>626
Buttonがぶっ飛んだ
631:Now_loading...774KB
07/10/17 18:44:30 7wtQRXo1
フラッシュを再生したら自動で1度だけ書いたスクリプトを実行させる
文って何?
632:Now_loading...774KB
07/10/17 19:13:41 6kNNesfq
>627
そのフレームにtrace("通過")とか書いて確認汁。
>631
ルートのフレーム1に
onLoad = function(){
)
とか
633:Now_loading...774KB
07/10/17 20:00:11 LCTz3iR8
>>632
それうまくいかない時がある
634:Now_loading...774KB
07/10/17 20:05:16 7ignNLKe
>>632
それは1フレしか無いときか? それなら俺は
this.onEnterFrame = function() { } 内にフラグ=Trueで実行されるASを書いて、更にonEnterFrame内
の最後にフラグ=Falseとしている。
1回しかTrueの機会がないので、onEnterFrameでも1回しか実行されない。
635:627
07/10/17 20:14:50 6IAwvrDI
>>628
>>632
traceで確認すると、やはりずれていたので何かscriptを間違えてるみたいです。
いろいろ試してみます。有難うございました。
636:Now_loading...774KB
07/10/17 20:53:02 SZT5WKlR
>>632
つか、onLoadはそういう使い方しないと思う。
フレームアクションで使うもんじゃなくてクラス内での特定の処理用って
野中氏が書いてた希ガス。
>>634
onEnterFrame使うなら、実行の後にdeleteすればよくね?
毎回onEnterFrameで判定させ続けるのは無駄に思えるんだが。
637:Now_loading...774KB
07/10/18 01:41:52 CcUX8g3U
無駄っていうか、負荷がかかるから、
delete this.onEnterFrame;
だな。
638:Now_loading...774KB
07/10/18 18:37:05 2UT4DSWD
>>632-37
今北産業
よく分からないからまるごとAS書いてクレパス
639:Now_loading...774KB
07/10/18 18:56:03 dcmeTTin
超基本的な質問なんですが、何か処理を常にループさせておきたい時って
皆さんどうされてるんですか?私はいつもsetIntervalを使うのですが、
もっと一般的な方法があるのかと思って質問しました。
640:Now_loading...774KB
07/10/18 19:22:38 0201MtKR
>>639
そこでonEnterFrame
641:Now_loading...774KB
07/10/18 21:43:31 dcmeTTin
>>640
onEnterFrameってムービークリップを用意する手間がかかりませんか?
642:Now_loading...774KB
07/10/18 21:46:23 Q9e0+u1z
>>641
ASで空のMCをつくるだけならそんなに手間かからんと思う
643:Now_loading...774KB
07/10/18 21:47:43 dcmeTTin
>>642
なるほど。
で、それはsetIntervalよりも一般的に用いられている方法なのでしょうか?
644:Now_loading...774KB
07/10/18 21:55:45 ZIfnorVb
少しスレ違いかもしれないんですが、
ニコニコ動画みたいにコメントをリアルタイムで更新して表示したいんですが、
どうやればいいんでしょうか?
setIntervalとかで一定時間ごとに読みに行く以外の方法は。。。?
645:Now_loading...774KB
07/10/18 23:06:33 Q9e0+u1z
>>643
現在それが一般的かどうかは知らん。
MXより前は、setInterval()なんてものは片鱗すらもなく
onClipEvent(enterFrame)しかなかった。
それをひきついだ形でonEnterFrameを使う人はいるだろう。
もともとはフレームアニメーションのソフトだったし
マシンスペックが低い時代には
高頻度な描画更新が期待できなかったこともあり、
フレーム単位で設計を考えることが「昔は」一般的であったと思う。
646:Now_loading...774KB
07/10/19 00:54:36 W79YCVwl
>>639
待機時間を簡単に変えられるsetIntervalの方が都合良い場合が多いと思う。
>>644
Flash側からリクエスト投げた状態で
サーバ側でわざと出力せずにSleepしておくとか。
なんにしろサーバ側の実装が大変なはず。
647:Now_loading...774KB
07/10/19 01:12:01 i7Xv9cX6
>>643
普通描画と同期させたいからonEnterFrameを使う
むしろsetIntervalは予期せぬタイミングでよばれてクラッシュを引き起こす恐れがあるイメージがある
648:Now_loading...774KB
07/10/19 01:23:52 tuMxnnGk
setIntervalはプロセッサの負荷に応じてと玉突き状に遅れていくから特殊用途にしか使わないな。
649:Now_loading...774KB
07/10/19 01:43:11 O6fMLnRZ
>>647
>>648
予期せぬタイミングって、しかもクラッシュって、、設計自体がおかしいからじゃないのそれ。
特殊用途ってなんだよw
650:Now_loading...774KB
07/10/19 01:57:20 46rUnYyO
自分は使わなかったから知らなかったけど
setIntervalで実行される関数の間隔は
onEnterFrame、つまりswf自体の描画フレームレートより
早い間隔に設定しても内部ではsetIntervalの関数が間隔通りに
実行されるみたいね。
てことは描画はあくまで30fpsだけど
入力精度や内部処理が60fps相当なゲームも作れるのか・・・
色々と面倒そうだけど。
651:Now_loading...774KB
07/10/19 02:04:53 fRuXf06C
>>649
確かに設計に問題がなければ大丈夫だろうが、
問題を起こしにくいにこしたことがない。
要は、fpsに同期して考える方が設計が楽ってことだと思う。
Flashはどうしても描画に負荷がかかりやすかったから
fpsが出なければsetIntervalが正確でも意味がないということもあるし…。
652:Now_loading...774KB
07/10/19 04:55:37 dqfD4AMd
極端に負荷のかかるループを実行する時は、
setIntervalでsleepの変わりを実現してる。
例)100万回のループ処理がある場合、
for文で100万回まわさずに、
1万ループx100回に分割し、
setInetrval(loopFunc, 10); な感じで実行してる。
653:Now_loading...774KB
07/10/19 08:00:11 O6fMLnRZ
>>652
いわゆる待ち時間をつくるのはsetIntervalで普通だけど、
その例は最悪だなw
forループ処理とsetIntervalでのコード実行のコストを考えれ。
654:Now_loading...774KB
07/10/19 16:14:41 dqfD4AMd
>>653
実行コストではなく、
他言語に用意されるシステム割り込み『sleep関数』の代わりと書いているのだが?
例えば1forループ10秒かかる処理があったと過程した場合、どう組むのが最適?
setInervalでループ分割する事でブラウザ&Flashのフリーズを阻止する。
なんてのは、中級者以上なら常套手段だと思うのだがw
実行コスト厨っぽいから先に言っとくけど
「そんな負荷かかる処理はロジックが悪い!」とか言う答えは無しな。
655:Now_loading...774KB
07/10/19 16:32:12 O6fMLnRZ
>>654
分散処理で負荷軽減はできるが、その例は良くないってことを言ってるのよん。
forループ10秒かかるってのもすごいが、1万ループを100回に分割って、、、、
サーバー側の処理じゃないんだから、クライアント側ではそんなことは普通しないでしょ。
656:Now_loading...774KB
07/10/19 16:34:42 fpwmazCs
おはようございました。
Windows2000、FLASH MX 2004を使っています。
LoacalConnectionに関して質問させてください。
//受信側
rcv_LCon = new LocalConnection();
rcv_LCon.connect("receiver");
rcv_LCon.rcvTitle = function(a) {
//30行くらいの処理
}
//送信側
send_LCon = new LocalConnection();
スクリプトで生成したボタン.onRelease = function() {
_root.send_LCon.send("receiver","rcvTitle",this._name.substr(5,1));
}
上記のような形で初めてLoacalConnectionを使って作ってみたのですが、送信側のswfで生成した5つのボタンの中でどのボタンを押しても、
一度だけ受信側のswfで関数が呼び出されるのですが、二度目はどのボタンを押しても受信側の関数が呼び出せなくなってしまいます。
プレビューで変数を見てみても、受信側のrcv_LConと、送信側のsend_LConはきちんとずぅっと残っているのですが、
なぜ一度通信した後、以降通信出来なくなるのかが分かりません。
解決方法、または解決方法が記されたページがありましたら、教えていただけないでしょうか?
よろしくお願いいたします。
657:Now_loading...774KB
07/10/19 16:47:43 tuMxnnGk
>>655
分散処理って具体的にどういう事?
Javaかなんかとごっちゃに考えていない?
658:Now_loading...774KB
07/10/19 16:53:53 O6fMLnRZ
>>657
たとえば、MCを100個attachする。それぞれのスレッドで動くよね。
for文を分割してsetIntervalを100個作ってそれを動かす。そんな必要あるんかw
ごっちゃというか、OOPそのものなんだけどなw
659:Now_loading...774KB
07/10/19 16:56:03 dqfD4AMd
>>655
>>forループ10秒かかるってのもすごいが、1万ループを100回に分割って、、、、
処理内容と動作スペックでは十分想定の範囲。
>>サーバー側の処理じゃないんだから、
>>クライアント側ではそんなことは普通しないでしょ。
これは、クライアントだからこそするんじゃね?
古いマシンだと、Flashに全てのリソース奪われてブラウザがフリーズ状態になる事だってある。
だからこそ細かめにループ分割しておくことで、ユーザの割り込み=キャンセル処理が可能な実装をしておくべきなのでは。
660:Now_loading...774KB
07/10/19 17:05:59 O6fMLnRZ
>>659
古いマシンってどんだけ古いんだよw
ってのはさておき、その例では「setInterval使えばfor文が早くなるんだぜ」な感じで
あんまし表現が良くないってこと。そこがきになったんよ。
661:Now_loading...774KB
07/10/19 17:09:36 8bxNeY9T
>>658
いつからムービークリップはマルチスレッドで動くようになったんですか?
私の知っているFlashではforループがどこかで回っていると、他の処理は
並行的に実行されなくなるんですが?
ムービークリップの数だけスレッドができてしまったら、スレッドの切り替え
にえらいコストがかかりそうですね。synchronize機構も無い言語で、
知らないうちにマルチスレッドで動いてるなんて怖い時代になったものですね、と。
for分けたほうが速いなんていってる人はここにはいねぇだろ。よく読めや
662:Now_loading...774KB
07/10/19 17:10:34 DcvvAsvL
>644
NetSterem.send()またはSO.onSync()
FCSのスクリプトだ。
ただし、ニコ動は一定時間ごとに更新が働いていそうだから
ストリームからの同期ではなく、setIntervalで
SOの状態を反映させている可能性もある(負荷軽減のため)
たしかAS3からは「setDirty()」で、同期を制御することができるんだっけ?
それも使ってるかも知れない。
663:Now_loading...774KB
07/10/19 17:12:27 O6fMLnRZ
>>661
例が悪いって言ってるのが解らない奴がいたw
664:Now_loading...774KB
07/10/19 17:14:19 8bxNeY9T
釣られましたごめんなさい
665:Now_loading...774KB
07/10/19 17:18:40 dqfD4AMd
>>658
>>for文を分割してsetIntervalを100個作ってそれを動かす。そんな必要あるんかw
って時点で意味を全く理解していない事がわかったw
あとFlashにスレッドに該当するものは存在しないよ。何をスレッドと思い込んでるん?
>>659
最近のマシンでも1,2秒フリーズするような処理はあるだろ?
それを体感させないくらいの処理に分割する。って事だ。
666:Now_loading...774KB
07/10/19 17:20:05 dqfD4AMd
穴だらのコードだけど、分割例あげとく。
var ONE_TIME_MAX:Number = 10000;
var stateObj:Object = {i:0};
stateObj.intervalID = setInterval(this, "loopFunc", 10, stateObj);
function loopFunc(stateObj:Object):Void
{
var sTime:Number = getTimer();
for (var i:Number = 0; i < ONE_TIME_MAX; i++) {
stateObj.i++;
}
trace("loop:" + stateObj.i + " time:" + (getTimer() - sTime));
if (stateObj.i > 1000000) clearInterval(stateObj.intervalID);
}
ONE_TIME_MAX; の値を下げれば、
クライアント側のマシンは体感的にはフリーズしないが、全体の処理時間は多少伸びる。
ONE_TIME_MAX; の値を上げれば、
クライアント側のマシンは体感的にはフリーズするが、全体の処理時間は早くなる。
用途と想定環境で調整しろってこった。
667:Now_loading...774KB
07/10/19 17:29:27 O6fMLnRZ
>>665
スレッド処理といえば解るのかな?スレッド自体プログラムで処理してるわけでしょ。
スレッドが無いじゃんというのはかまわないけど、実際そうだからしょうがないしw
668:Now_loading...774KB
07/10/19 17:36:43 O6fMLnRZ
>>666
多少伸びるとか、体感的とか、、ちゃんとベンチマークしたんかいw
たまたま、そんとき常駐ソフトがうごいたとかじゃねーのかw
669:Now_loading...774KB
07/10/19 17:44:17 8bxNeY9T
普通に考えればこんなアホいるわけないんだから、釣りに決まってる。
みんなも釣られるなよ!
670:Now_loading...774KB
07/10/19 17:46:13 O6fMLnRZ
>>669
典型的なゆとりの捨て台詞だなw
671:Now_loading...774KB
07/10/19 17:46:30 dqfD4AMd
>>668
わざわざtrace()つきでサンプルあげたんだから実行してみろよww
・C2D 2.4Ghz / 1ループ100万処理
1.2秒間で完了。処理中は他の処理全てが停止。
・C2D 2.4Ghz / 1ループ5万処理 x 20
1.4秒間で完了。同時(擬似)に他の処理が可能
俺だったら、後者を取る。
672:Now_loading...774KB
07/10/19 17:51:36 O6fMLnRZ
>>671
だからさ、そんなの意味無いっていってるじゃん。
純粋なPCで、せめて1000回試行して、、ってつか、1.4秒間に他の処理って何なんだそれ?w
673:Now_loading...774KB
07/10/19 17:56:17 46rUnYyO
/ ̄ ̄ ̄ \ ホジホジ
/ ― ― \
/ (●) (●) \
| (__人__) | 動けばどうでもいいよ
\ mj |⌒´ /
〈__ノ
ノ ノ
674:Now_loading...774KB
07/10/19 17:57:13 dqfD4AMd
ポカーン(゜Д゜)
純粋な技術の話が、ゆとり論点「そんなの意味ない」に変わったので、もういいやw
制作の現場でんな事言ったら、
「お前の存在のが意味ねーよw」って言われちゃうんだから(><
675:Now_loading...774KB
07/10/19 17:58:51 O6fMLnRZ
>>674
ゆとり発言にはゆとりで返答したんだけど、、、、
676:Now_loading...774KB
07/10/19 18:01:42 tuMxnnGk
膨大にfor,while回す場合は最低限、FlashPlayerに無限ループフラグを建たせない程度に分割する必要はあると思うよ
677:Now_loading...774KB
07/10/19 18:01:50 O6fMLnRZ
厳しいようだけどホントにそうだからね
678:Now_loading...774KB
07/10/19 18:02:54 tuMxnnGk
>>677
え?何が?
679:Now_loading...774KB
07/10/19 18:04:34 8bxNeY9T
だから釣られんなって
680:656
07/10/19 18:24:12 fpwmazCs
すいません。分かる方いたら>>656お願いします。
681:Now_loading...774KB
07/10/19 18:31:22 EXfWcKY4
>>680
それだけじゃわからんから、flaとHTMLをUpしたら?
682:Now_loading...774KB
07/10/19 18:44:27 8bxNeY9T
>>680
その「30行くらいの処理」に問題があるんじゃないのかな?
trace(a);だけで実験したけど何の問題も起きんよ。
683:Now_loading...774KB
07/10/19 18:54:49 bT3V+drs
だよなあ。他の言語ならともかく、Flashはループでプレーヤーからブレーキかけられるからなあ。
良く使い慣れてる人ほど、分割する仕組みを考えるわな、常識的に考えて。
脳内の人はどうかしらんけど。
684:656
07/10/19 19:05:16 fpwmazCs
>>681-682
返信ありがとうございます。
仕事でクライアント企業のために作っているホームページなのでうpする事は出来ないのですが、
>>682の発言から、テストでLocalConnectionを実験するためだけのSWFを作って実行してみたところ、
何の問題もなく何回でも通信出来ました。
「30行くらいの処理」の中に外部テキストファイルを読みに行ったり、onEnterFrameを作ったりと色々やってるので、
その中の何処に問題があるのか自分なりにテストして調べてみたいと思います。
すいません。ありがとうございました。
685:Now_loading...774KB
07/10/20 13:41:10 imkaZe3i
URLリンク(www.kisekae.jp)
ここの壁紙を作るゲームのようなことをやりたいのですが、
どのように作ってるのかわかりません。
無数の壁紙を用意してるようでもなさそうですし、サーバーで壁紙を
作ってるとは思いますが、どうすればできますか?
winXP FLASH8です
686:Now_loading...774KB
07/10/20 13:49:05 2Mx4Dfp7
質問です。
Flashを表示した時に、はじめからテキストボックスにキャレットを表示させて
おきたいのですが、どうすれば良いでしょうか。私で調べたところ、
Selection.setFocusでフォーカスを与えられるようですが、
1フレーム目にSelection.setFocus("_root.textFild1");と記述しても
キャレットは表示されません。。(文字を打ち込むことだけは出来るようですが)
一般的な方法を教えていただけると助かります。
687:Now_loading...774KB
07/10/20 23:20:33 +I8Fy8oj
class Book1 {
var vol:Number = 20;
class Book2 {
function Book2() {
trace(vol);
var titleS:Book1 = new Book1();
var titleJ:Book2 = new Book2();
クラスBook2でBook1のvol変数を参照したい場合どうすればいいのでしょうか?読み込みテストでtraceをしています
調べたらpublicを付ければ他のクラスからもアクセス可能とあって、
実際にpublic var vol:Number = 100としても「'vol' という名前のプロパティはありません。」とエラー
ただ試しにとtrace(Book1.vol);としてみたら「参照されているプロパティには、静的属性がありません。」とエラーが出ます
どうすれば読み込む事ができるのでしょうか?AS2.0です
688:Now_loading...774KB
07/10/20 23:35:43 /VMUh1e8
public function getVol():Number{
return vol;
}
でどうだ
689:Now_loading...774KB
07/10/20 23:36:14 0hjIJdd/
>>687
そこはBook1.volじゃなくて、titleS.volじゃない?
Book1、Book2てのはあくまでクラスという殻の名前で、
そのクラスの殻をかぶった実体はtitleS、titleJという
クラス変数なのだから。
変数の中身はBook2中のtrace(vol);のとこを
trace(titleS.vol)にすれば多分いける(クラスの宣言の仕方・位置によってはできないけど)。
690:Now_loading...774KB
07/10/21 01:10:29 z6nWa6iZ
>>687
場合によってはclass Book2 extends Book1 として継承すべきところかも知れないし、
public static var vol:Number = 20;と静的メンバにすべきところかも知れないし、
Book2のコンストラクタでfunction Book2(b1:Book1)として持たせておいてb1.volと参照べきかも知れない。
正解は687しか分からない。
691:Now_loading...774KB
07/10/21 14:45:22 ac0oRU+C
ものすごい初歩的な質問かもしれんが
ステージに自分でMCを配置して
そのMCのリスナーをドキュメントクラス(main.as)から登録ってどうやるんですか?
var MC_A:MovieClip;
MC_A.addEventListener( MouseEvent.MOUSE_DOWN, ふぁんくしょん );
エラー
「null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」
みたいな事になります。
ちなみに、Windows CS3のAS3.0です。
ご教授お願いします。
692:Now_loading...774KB
07/10/21 15:01:11 B82okr/G
FLash Lite1.1でボタン機能を無効にする方法を教えてください。
AS2.0だと
button.enabled =false;
でボタン機能がむこうになりますが、こんな感じでボタンを作動させない方法は
LITE1.1にありますか?
_visibleで非表示にもできませんよね?
693:Now_loading...774KB
07/10/21 15:15:13 wjACHB4b
外部ファイルの読み込みがうまくいきません。
FLASHで写真アルバムのようなページを制作しています。
読み込む方のphoto.swfを単独で開いたらうまくいくのですが、
親のmain.swfにload_□□mc.loadMovie("photo.swf");
でphoto.swfを読み込ませると最初のstop();まで読み込み、
次の写真へは送りボタンを押しても機能しません。
これはどういったことが問題なのでしょうか。
分かる方ぜひともお教えください。お願いします。
694:Now_loading...774KB
07/10/21 15:20:45 ac0oRU+C
>>693
たぶん、photo.swfのASに_root何チャラって書いてないか?
mainの中のphotoだからRootはmain.swfになるのよ
っで、AS2.0だよね?
695:Now_loading...774KB
07/10/21 15:28:20 ac0oRU+C
>>693
ちなみに、Rootの設定がAS内でできたような。。。
すまん、わすれた
696:Now_loading...774KB
07/10/21 15:33:41 wjACHB4b
>>694
ご回答ありがとうございます。
最近はじめたものであまりAS1.0とAS2.0の違いも分からないのですが
多分2.0です。
photo.swfの中のボタンに_root記述してありました。
photo.swfのシーン1のタイムラインに飛ばしたいのですが
_rootの代わりに何と記述すれば良いでしょうか?
697:Now_loading...774KB
07/10/21 15:37:19 ac0oRU+C
this.gotoAndPlay( )
だな
698:Now_loading...774KB
07/10/21 15:40:42 e47dlEKS
>>691
ドキュメントクラスってのがよくわからんが、オーサイズ時にインスタンス名付ければ
そのままそれが使えるけど。
>>692
FlashLite1.1はas1レベルだっけ?ヘルプ見て無ければ無いのでしょう。
>>694
パス指定が合ってるかどうか確認。_lockrootあたりをヘルプで調べてみ。
699:Now_loading...774KB
07/10/21 15:43:41 ac0oRU+C
>>698
あ、ほんまや。。。
ありがとう。
いちいち、宣言しなくてもいいですね。orz
700:Now_loading...774KB
07/10/21 16:10:33 wjACHB4b
693です。
みなさまありがとうございました!
_lockrootで解決いたしました。
701:Now_loading...774KB
07/10/21 16:20:09 wjACHB4b
もうひとつ質問です。
親swfからloadMovieで読み込ませている外部ファイルswfの
任意のタイムライン(ラベルをつけてある)に親swfからリンクできますか?
702:Now_loading...774KB
07/10/21 16:29:04 ac0oRU+C
インスタンス名.gotoAndPlay("ラベル名")
でいけんじゃね?
親SWFの子SWFにちゃんとインスタンス名を指定してあげること
703:Now_loading...774KB
07/10/21 16:48:04 wjACHB4b
>>702
ご回答ありがとうございます。
親swfに配置してあるボタンに
on (release) {
_root.load_shoppingmc.gotoAndPlay("tee");
}
と記述したのですが、やはり飛びません。う~む
704:Now_loading...774KB
07/10/21 17:06:24 jBT9Iizq
>>703
親swfのバージョンと、子swfのバージョンは?
あと、trace(_root.load_shoppingmc) でちゃんと配置されてるか試してみた?
705:Now_loading...774KB
07/10/21 17:30:21 wjACHB4b
ご回答ありがとうございます。
パブリッシュの設定はそろえてあります。
trace(_root.load_shoppingmc) はどこに記述すれば良いのでしょうか?
706:Now_loading...774KB
07/10/21 17:40:45 jBT9Iizq
>>705
on(release) に
707:Now_loading...774KB
07/10/21 17:43:49 wjACHB4b
出力画面にはundefinedとでました。
708:Now_loading...774KB
07/10/21 17:48:31 jBT9Iizq
パスが間違ってる可能性があるので、見てみてください
709:Now_loading...774KB
07/10/21 17:59:45 ac0oRU+C
load_shoppingmcはインスタンス名ですか?
load_shoppingmcを選択して左下のプロパティに「load_shoppingmc」ってでてますか?
710:Now_loading...774KB
07/10/21 18:47:14 QezD4BGt
setIntervalの話が出てたんでついでに質問。
URLリンク(www.adobe.com)
↑の、
>切り替えタイミング単純にをsetIntervalアクションで制御すると、時計と映像がずれる場合があり、
>時間と時計の動きを正確に合わせるという所も注意を要しました。
って具体的にどうやってのかね?
俺も1秒間隔で実行するスクリプトを組んだんだがたまにずれてくんのな。
711:Now_loading...774KB
07/10/21 18:55:56 ac0oRU+C
setIntervalで実行されるファンクション内で時間を取得してるんでは?
setIntervalでコンマ単位で実行
その中のファンクション内で1秒たったら実行
みたいな感じかな~
なんか、力技っぽいけど
712:Now_loading...774KB
07/10/21 19:04:09 ac0oRU+C
またまた質問で申し訳ないんですが。
Flash.swf?a=12
みたいな感じでGETで渡した値ってメインフレームの「a」に入るけど
AS3.0のドキュメントクラスを使って作ってるFlashの場合どうやって取得するの?
一応、自分の書いたAS張っておきます。
■ドキュメントクラス
package {
public class main extends MovieClip {
var a:Number;
function main(){
trace( a );
}
}
}
■メインフレームアクション
なし
■結果
null
orz...
713:Now_loading...774KB
07/10/21 19:18:51 wjACHB4b
>709
load_shoppingmcはインスタンス名です。
プロパティのところに表示されてます。
714:Now_loading...774KB
07/10/21 20:01:03 ac0oRU+C
>>713
すまん。わからん。
とりあえず、trace(_root.load_shoppingmc)でundefinedって出たなら
そんなインスタンスねえよってことだから
アクションスクリプト書くところの上部分「ターゲットパスを挿入」でみてみたら?
715:Now_loading...774KB
07/10/21 20:18:35 wjACHB4b
>>714
ありがとうございます!
なんとかやってみます。
716:Now_loading...774KB
07/10/21 20:28:32 zqyeyAul
>>712
trace(LoaderInfo(loaderInfo).parameters.a);
かな?
>>710
>>711の言う通り。setIntervelは結構いい加減。FPSによってもズレるから
時間とかカウントダウンは都度、PCの時間をチェックした結果を使った方がよさげ。
717:Now_loading...774KB
07/10/21 20:45:31 sgZ6F/K5
>>710
>>711
>>716
getTimer(); が楽だぜ。
718:Now_loading...774KB
07/10/21 21:09:08 ac0oRU+C
>>716
おお!!
助かる!!
ありがとう!
719:Now_loading...774KB
07/10/21 23:56:42 ac0oRU+C
またまたまた質問で申し訳ない
現在動的にPOSTデータを生成してるんですがうまく動きません。
ご教授お願いします。
動作環境:AS3.0
package {
import flash.net.*;
public class main extends MovieClip {
var PostRequest:URLRequest = new URLRequest();
public function main() {
test1();
}
function test1(){
for ( var N:Number in PostArray ){
myCString = "c"+N+ "_";
PostStr = myCString + "test";
PostRequest[PostStr] = N;
}
}
}
}
結果-----
flash.net.URLRequest のプロパティ c0_test を作成できません。
わかりくいソースですが、よろしくお願いします。
720:Now_loading...774KB
07/10/22 00:03:15 LJ9icd3x
環境 OSはWinXP-Pro,ソフトはFlash8-Pro
root(ステージ)上のマウスの位置を把握したいのですが出来ません。ASはrootの
フレームのイベントとして下を書いています。
this.mouseDown = function() {
trace("mouseX= "+_root._xmouse);
};
traceが表示されません。どこが駄目なのでしょうか?
721:Now_loading...774KB
07/10/22 00:06:10 qfpgHYn7
>>720
this.onMouseDown = function() {
trace("mouseX= "+_root._xmouse);
};
722:720
07/10/22 00:28:41 LJ9icd3x
>>721
ああ、そうだった。
さんきゅう。
723:Now_loading...774KB
07/10/22 01:20:02 eOPDElNt
>>719
URLRequestはdynamicじゃない
724:Now_loading...774KB
07/10/22 01:54:34 8gzli1sS
>>17
回答になるURLだけ。
URLリンク(livedocs.adobe.com)
725:724誤爆
07/10/22 01:57:03 8gzli1sS
おかしいな、スレタイ確認してから書き込んだのに(ノ∀`)
726:Now_loading...774KB
07/10/22 02:38:42 +xTs4Kq3
>>723
え!!
そうなんですか!?
でも、どうやって動的な変数を作るんですか?
727:Now_loading...774KB
07/10/22 03:15:52 +xTs4Kq3
>>726
URLVariablesですね。。。
自己解決しました。
>>723
ありがとうございました。
728:Now_loading...774KB
07/10/22 14:55:07 J3FeIoLe
>>711>>716>>717
なるほど時計と同期とればいいのか、
当たり前の話だけど目から鱗だった。
ありがとう。
729:Now_loading...774KB
07/10/22 16:09:21 MLLh9Prc
間違って 兆速で答えるスレ に書いてしまったのですがこちらにもポストさせて頂きます、申し訳ありません。
AS2におけるMovieClipLoaderについて質問です。
例えば、
_root
-testMC
-loadingMC
という構成でMCを2個置くとします。
testMCには単純に矩形を描画して、とりあえず試しに
this.onEnterFrame = function(){
this._rotation += 10;
}
とか書いて回しとくとします。
で、loadingMC内でMovieClipLoaderを使い、
jpgやswfを何かのタイミングで読み込むと、
ファイルのロード中(onLoadProgressが呼ばれている間)に
testMCの回転も止まってしまうのですが、自分の環境だけでしょうか?
ロードが終わればtestMCの回転も再開します。
onLoadProgress以外の処理が全てストップしているように見えるのですが…
読み込むswfやjpgのファイルサイズが小さい場合には気にならないのですが、
大きくなると止まっているのがよく分かる状態です…。
どなたかこの対処法などご存知ないでしょうか…?
730:Now_loading...774KB
07/10/22 16:25:01 gP/TdxM1
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
マウスポインタの動きについて質問です。
root内あるいはMC内でオリジナルデザインのマウスポインタを動かす際に
マウス(分解能は変えない)を20cmくらい動かしてもroot内あるいはMC内に
収めるにはどういう方法が考えられますでしょうか?
当方で試した仕組みは、オリジナルデザインのマウスポインタMCをnewMouseM
として、このイベントを(すいませんAS全部書きます)
onClipEvent (load) {
Mouse.hide();
moveRate = 50; //比率を50%に
}
onClipEvent (mouseMove) {
this._x = 0.01*_root._xmouse*moveRate;
this._y = 0.01*_root._ymouse*moveRate;
//moveRateが100の場合、動きが一致する
updateAfterEvent();
}
としました。これで一応は本物のマウスの半分の動きが実現できますが、本物
のマウスポインタがディスプレイ(15インチ,10024*768)の端に到達すると動か
なくなります。
マウス自体の分解能は変えれば一番手早いのですが、同じPCを他の用途にも
使うのでマウスの設定はなるべく避けたいです。なお、マウスポインタ自体の座標
を変えようと _root._xmouse = _root._xmouse/10; などとしましたが駄目でした。
アドバイスを願います。
731:Now_loading...774KB
07/10/22 18:08:55 vxixU9N4
Flash CS3Pro WinXPsp2 を使ってます。ActionScript3について質問します。
MovieClipを順番に並べて各MCにアクセスしたいんですが、
AS2でやってた方法が使えず困ってます。
var cnt:int;
var mc:MovieClip;
for (cnt=0; cnt<3; cnt++) {
mc= new bt();
mc.name = "bt"+cnt;
mc.y= cnt * 30;
container.addChild(mc);
}
これでリンケージされたムービーbtを配置することは出来たのです。
しかし、各MCにアクセスすることが出来ません。
例えば2個目のmcをvisible=falseにしたりとか、mc.visible=false でも bt1.visible=falseでもダメでした。
AS2の頃はmc[cnt] = new bt();みたいにして、
オブジェクト名を付けられた気がするんですが、AS3ではどうすればいいのですか?
732:Now_loading...774KB
07/10/22 18:19:03 qMJFNePx
>>729
そもそも、フレームレートはどの位?
速すぎるのは駄目だから、1fpsでは試した?
733:730
07/10/22 18:47:05 qMJFNePx
(訂正)
マウスの分解能は通常のマウスでは調整できないですね。
失礼しました。
代わりに コンパネ → マウス → マウスポインタ → ポインタの速度を選択する
で調整できますが、さっき書いた通り、他の用途を考えるとこれは避けたいです。
734:Now_loading...774KB
07/10/22 18:54:58 9lhBhZOc
>731
俺はAS2しかわかんないから違うことを言うかも知れないけど、例えば
mc[i]=this.attachMovie("myMC","mc_"+i,i);
としたとき、参照名である mc[i] と、インスタンス名である ["mc_"+i] は
別物だと言うことは理解できるよね?
きみはどうも、「オブジェクト名」という言葉に、参照名とインスタンス名の
両方をごっちゃにして意味を当てているように思える。
>731のソースで、変数mcに3回、別の意味を与えているけれど
ソレだと最後の1つしか、意味を成さなくないのかな?
735:Now_loading...774KB
07/10/22 19:03:04 /GsMCeXm
>>731
cs3でもできるcontainer["bt1"].visible=false
736:Now_loading...774KB
07/10/22 19:52:20 3U1uYhkA
>>731
735のでもいいしgetChildByName使ってもいいし配列に入れてもいいしいろいろ
やり方があるよ。個人的にはgetChildByNameを結構使う。
737:729
07/10/22 20:00:25 MLLh9Prc
>>732
試してみたのですが…
他にEnterFrameなりTweenなりのアニメーションが
動いている状態で外部読み込みをしたいので、結局1fpsにしてしまうと意味が無いというか…
1fpsの間にファイル読み込みが終わってしまって結局現象の確認もしづらいので。
ちなみに初めは30fpsでやっていました。
読み込むファイルの、描画的負荷が高い方が止まる率が高いように思います…。
サイズの大きいjpgであったり、それを配置してあるswfだったり。
でも、それほどサイズの大きくないjpgでも1瞬カクっとなる事もあり、、
loadMovieではこんな風になった記憶は無かったのですが…
738:Now_loading...774KB
07/10/22 20:40:00 w//pZjr4
>>737
10°単位なら力技で36フレームに分割するという手もある。
739:Now_loading...774KB
07/10/22 20:58:59 LM6crXUA
>>737
onLoadProgressで、ループ回してたりとか何か複雑な描画をさせてたりとかはないの?
onLoadProgressリスナーを使わなくても、描画が止まるの?
740:729
07/10/22 21:28:41 MLLh9Prc
>>738
回転させているMCは確認用に置いてあるだけで…回転しているMCはそれほど重要ではないんです、、申し訳ありません…
>>739
以下にソースを書きます。onLoadProgressにはtraceだけ入っていましたがコメントアウトしても変わりませんでした。
var mcLoader:MovieClipLoader = new MovieClipLoader();
var objListener:Object = new Object();
objListener.onLoadStart = function(target_mc:MovieClip){
target_mc._visible = false;
}
objListener.onLoadProgress = function(target_mc:MovieClip, nLoadedBytes:Number, nTotalBytes:Number){
//trace(Math.floor(nLoadedBytes/nTotalBytes*100));
}
objListener.onLoadInit = function(target_mc:MovieClip){
target_mc._visible = true;
}
mcLoader.addListener(objListener);
function loadingStart(){ mcLoader.loadClip("sample.jpg", MCLoader_target); }
で、外からloadingStart();を呼ぶと、onLoadInitの部分に来るまでストップしてしまう状態です。
テストで読み込んでいるsample.jpgは1MBちょっとありますが、それほどパフォーマンスに影響が出るサイズとも思えません、、。
というか737でも書いたのですが、処理が止まるタイミングがブラウザによって違うような挙動が見受けられました…。OSはMac OS Xで、
Safari→onLoadInitのtarget_mc._visible = true;のタイミングで1瞬止まる
Firefox(最新)→ロード開始~target_mc._visible = true;の間止まっている
これはFlashというよりブラウザのパフォーマンス(かwebエンジン)がFlash Playerの挙動に影響してると考えた方が良いのでしょうか
741:Now_loading...774KB
07/10/23 00:06:45 bmsGLdDw
>>734-736
ありがとう。
>>734
AS2ならattachMovieでなんとか出来るのは知ってるんだけど、
それをAS3に書き直そうとして混乱してる状態です。
>>735-736
まだAS3は全然馴染めてないので、教えてもらった方法で色々試してみます。
742:Now_loading...774KB
07/10/23 05:43:55 rIGy1SeP
連想配列を列挙するにはどうすればいいのか。
this._hash = new Object();
_hashに色々登録
for(var key in this._hash) {
}
とやっても列挙されない。
743:Now_loading...774KB
07/10/23 06:41:52 4gII7L/z
var hash:Object = new Object();
hash.s1 = "ABC";
hash.s2 = "DEF";
hash.s3 = "GHI";
for(var key in hash) {
trace(key + ":"+hash[key]);
}
744:Now_loading...774KB
07/10/23 06:46:04 rIGy1SeP
_hash[name]
と参照したいんだよね。
745:Now_loading...774KB
07/10/23 06:53:34 4gII7L/z
>>744
列挙って言ってるじゃんw
trace(hash["s1"]);
あとcじゃないんだから_つけるのやめれ。
746:Now_loading...774KB
07/10/23 07:47:15 rIGy1SeP
意味が分からん。
traceしてどうすんだよ。
747:Now_loading...774KB
07/10/23 09:45:12 kcpsvox1
なんでtraceに目がいっちゃうんだろうね、この子は
748:Now_loading...774KB
07/10/23 10:15:55 vmkXA1Uz
>>744
>>745に補足すると、要素名を引用符を付けない形で
指定したい場合は、 _hash.name と記述する。
foo["bar"] と foo.bar は同じ意味。
749:Now_loading...774KB
07/10/23 11:04:06 rIGy1SeP
name = "bar";
_hash[name]
とやりてぇんだよ。
_hash.name
はただのプロパティnameじゃねぇか。
750:Now_loading...774KB
07/10/23 11:19:28 vmkXA1Uz
>>749
そのとおり。じつはASに「連想配列」なんてものはないんだ。
オブジェクトのプロパティを代用しているに過ぎない。
だからそのルールに従ってくれ。
751:Now_loading...774KB
07/10/23 11:43:52 lvJbSOUs
3.0ならfor each in使うかdictionaryクラス使えばいいよ
752:731
07/10/23 11:51:22 1xuCy3hW
たびたび、すまんけど教えてください。
for (cnt=0; cnt<5; cnt++) {
var mc[cnt]:MovieClip = new MovieClip();
}
という感じをAS3にするにはどうしたらいいの?
mc0~mc5を作りたいだけなのに…
753:Now_loading...774KB
07/10/23 13:12:12 lvJbSOUs
>>752
いまいちわからんけど
var mc:Array = new Array()
for(cnt=0;cnt<5;cnt++){
mc[cnt] = new MovieClip();
addChild(mc[cnt]);
mc[cnt].name = "mc" + cnt;
}
trace(mc[0].name)
ってことかな?それとも
var _mc:MovieClip
for(cnt=0;cnt<5;cnt++){
_mc = new MovieClip()
_mc.name="mc"+cnt;
addChild(_mc);
}
trace(getChildByName("mc0").name);
ってことかな?
754:731
07/10/23 13:28:46 1xuCy3hW
>>753
ありがとう。
最初ので出来ました。
var mc:Array = new Array();
と
var mc:Array;
の違いがいまいち理解出来てない。
755:Now_loading...774KB
07/10/23 13:34:15 8DpBRXr5
>>754
変数宣言しているだけか、変数宣言と同時に初期化しているだけの違い。
756:Now_loading...774KB
07/10/23 13:46:06 4gII7L/z
初期化でなくインスタンス作成だべ
757:Now_loading...774KB
07/10/23 17:24:49 SA2GJuLv
//Etude.as
package{
import mx.core.*;
import mx.containers.*;
public class Etude extends Application{
public function Etude(){
addToCreationQueue( new Panel());
}}}
これ実行時にエラーになるんですが何ででしょうか?
758:Now_loading...774KB
07/10/23 17:48:13 4gII7L/z
>>757
エラーメッセージがでるならそれを書く。
出ないなら、自分が期待する状況とどう違うのかを詳しく書く。
759:Now_loading...774KB
07/10/23 18:39:08 SA2GJuLv
>>758
エラーメッセージが二つでます
エラーが出るだけで一応意図した通りの画面にはなってます
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at mx.core::UIComponent/getStyle()
at mx.core::Container/::isBorderNeeded()
at mx.core::Container/mx.core:Container::createBorder()
at mx.core::Container/styleChanged()
at mx.core::Application/styleChanged()
at mx.managers::SystemManager/URLリンク(www.adobe.com)()
at mx.managers::SystemManager/::initializeTopLevelWindow()
at mx.managers::SystemManager/::docFrameHandler()
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at mx.core::UIComponent/getStyle()
at mx.core::Application/mx.core:Application::layoutChrome()
at mx.core::Container/mx.core:Container::updateDisplayList()
at mx.core::LayoutContainer/mx.core:LayoutContainer::updateDisplayList()
at mx.core::Application/mx.core:Application::updateDisplayList()
at mx.core::UIComponent/validateDisplayList()
at mx.core::Container/validateDisplayList()
at mx.managers::LayoutManager/::validateDisplayList()
at mx.managers::LayoutManager/::doPhasedInstantiation()
at Function/URLリンク(adobe.com)()
760:Now_loading...774KB
07/10/23 18:44:26 SA2GJuLv
ついでに言うとas3です
761:Now_loading...774KB
07/10/23 19:22:15 VpHSj7ab
AS3.0
動的にライブラリから読み込みたいのですが、どうやるんですか?
AS2.0ならこんな感じだったかと
var tmpStr:String = "Class"+ event.target.name ;
tmpObj = new [tmpStr];
おねがいします。
762:Now_loading...774KB
07/10/23 19:47:37 rIGy1SeP
var hash = this._hash;
for(var key in hash) {
trace(key);
}
どういう理屈か知らんがローカル変数にコピーして回したらできたわ。
763:Now_loading...774KB
07/10/24 00:03:32 GQiP6Itg
>>759
意図している動作なのなら良いと思うがw
>>762
よかったねw
764:Now_loading...774KB
07/10/24 00:07:39 GQiP6Itg
>>761
AS2.0でそんなことするの初めて見たw
3.0なら普通にnewすればいいんだけどなw
まあ、どうせつりだろw
765:Now_loading...774KB
07/10/24 00:16:45 wpQfbzCf
ローカルのswfをdebugフォルダに入ってるSAFlashPlayer.exeで開くと、
「Flash 8 オーサリングツールはどこで実行されていますか」
っていうダイアログが延々出るんでうざったいです
このダイアログってどうやってでないようにすればいいんでしょうか?
うまく設定すると出ないようになるらしいんですがどうにもわかりません
お願いします
766:Now_loading...774KB
07/10/24 00:48:03 2VhgWVSn
>>764
そりゃたんにお前がド素人なだけだ
767:Now_loading...774KB
07/10/24 06:26:59 GQiP6Itg
>>766
そりゃ失礼しました。どうぞ、先生の回答をお願いします。
768:Now_loading...774KB
07/10/24 06:44:49 GQiP6Itg
>>765
CS3だけど、そんなメッセージ出ないよw
769:Now_loading...774KB
07/10/24 06:52:05 uRrCiYtD
GQiP6Itgから漂うオーラ
770:Now_loading...774KB
07/10/24 06:57:02 I9aNxL8h
>>761
getDefinitionByNameかな。こんな感じ。
var str:String = "Hoge"
var c:Class = getDefinitionByName(str) as Class
addChild(new c())
771:Now_loading...774KB
07/10/24 06:57:10 GQiP6Itg
>>759
エラーメッセージのままでしょ。実体化されてない、または初期化されていない
オブジェクトを参照しようとしたとか。
772:Now_loading...774KB
07/10/24 07:00:24 GQiP6Itg
>>769
くさくてごめんよっw
773:Now_loading...774KB
07/10/24 08:07:52 64F7xZqC
イライラ棒のような、コースに触れたらゲームオーバーといった物を作っているのですが
右クリックを禁止にする方法ってありますか?
右クリックをしたら指定したフレームに飛ばすというような
やり方があれば教えてください。ちなみにFLASH8を使用しております。
774:Now_loading...774KB
07/10/24 10:31:39 96cApCeQ
>>773
右クリックじゃなくて、右クリックによって可能になる特定の動作を
無効にしたいんじゃないのか?
AS2以前ならStage.showMenuでコンテキストメニューを制御できる。
あとは作り方次第。
うっかり右クリックしただけで特定のフレームに飛ばされたり警告出すような
クソ仕様はおすすめしない。
775:752
07/10/24 15:29:30 n2r5SaOW
またまた、お世話になります。
>>753で教えてもらったスクリプトにイベントリスナーをつけたんだけども、
引数の渡し方が良くわかりません。
var mc:Array = new Array()
for(cnt=0;cnt<5;cnt++){
mc[cnt] = new MovieClip();
addChild(mc[cnt]);
mc[cnt].name = "mc" + cnt;
mc[cnt].addEventListener(MouseEvent.CLICK, clickHandler); //ここで[cnt]を渡したい
}
function clickHandler(event:MouseEvent):void {
trace("クリックしたのはmc"+cnt); //何番目のmcをクリックしたか知りたい
}
かなり初心者的な質問だと思いますがよろしくお願いします。
776:Now_loading...774KB
07/10/24 15:31:42 Unkk+PUd
>774
いや、「イライラ棒」をやりたいと言っているんだから、
コンテクストメニューを出して、その間に(OSのフォーカスがムービーに当たっていないうちに)
ショートカットされるのを防ぎたいと言っているんじゃないかな。
俺は、「イライラ棒スタート!」の時に、ムービーをユーザーにクリックさせる
ことで、ムービーがフォーカスされていることを保証した上で、
フォーカスが外れたときに「ズルすんなバーヤ」と割り込めばいいと思う。
777:Now_loading...774KB
07/10/24 15:36:10 Unkk+PUd
>775
AS3には、MCのイベントにonPress()はないんだろうか。
俺ならMCのイベントで管理する。
そう言えばAS3のイベントは、イベントリスナーをaddする方法に
統一してるんだよねぇ。さぞかし面倒くさかろう。
778:752
07/10/24 16:25:33 n2r5SaOW
>>777
残念ながらAS3では、onPress()は使えないです。
779:Now_loading...774KB
07/10/24 18:13:49 b0Ww0dA7
>>775
cntを渡さなくても、event.targetを参照すればおk
780:Now_loading...774KB
07/10/24 19:00:07 lYVhsjTE
あ~
ックスしてぇ、まじでックスしてぇ
アスでックスしてぇ
781:Now_loading...774KB
07/10/25 00:28:17 KgbHXGW/
URLリンク(www.takopus.ru)
↑のブラーかける前の処理はどうやってるんでしょうか?
透明度下げたコピーを複数配置してるだけ?
782:Now_loading...774KB
07/10/25 00:35:02 SN5ZQWTW
>>781
おしい。
配置するのではなくビットマップにブレンドする。
783:Now_loading...774KB
07/10/25 02:34:47 TzFr2+vP
外部に定義したクラス(たとえばTest.asに記述したclass Test)は
一度読み込むと変更不可?
コンストラクタに描いたTraceが消しても出てきてるんですが。
わざと文法間違えてもエラー出ない。
784:Now_loading...774KB
07/10/25 02:35:48 TzFr2+vP
ちなみにFlashProfessional8です。
785:Now_loading...774KB
07/10/25 02:53:03 6yVvSMIH
君に罪悪感がある限り、いくら消しても消えないんだよ
786:Now_loading...774KB
07/10/25 03:14:51 T6GVh0dz
質問させて下さい。
フラッシュ(使用ソフトはFLASH MX2004)で単純なゲームを作っているのですが、
敵の出現テーブルを作った後プレビューしたら、敵が一回画面に出たら何回も無限に出てきてしまいます。
これを消す方法は無いのでしょうか?
787:Now_loading...774KB
07/10/25 03:40:51 whJwIs1L
>786
マルチ禁止
いくつの掲示板に書き込んだか知らないけど、
全部取り下げて、1つだけにしな
788:Now_loading...774KB
07/10/25 06:12:52 jZxOtniy
>>783
ASOファイルを削除して実行するとか。
まあ、Test.asセーブしないで実行したとかが大だけどね。
789:Now_loading...774KB
07/10/25 06:16:17 p03kdx1/
環境)OS:XPSP2 ソフト:Flash 8
もしかして、ライブラリに置いてある MC 等を使用→削除してもメモリは開放されない?
デカイ画像を使用しててメモリ使用量がすごい事に…
そのライブラリを持つ SWF を loadMovie 等で別の SWF に変えるとメモリが
開放されるんで上記のように思ったんだけど、教えてください。
790:783
07/10/25 06:57:53 TzFr2+vP
うーむ。
多分ファイルの更新日時が関係してそうです。
VMで実験してるんですが、ローカル上でやってる限りは問題ないようなので。
791:Now_loading...774KB
07/10/25 07:03:57 jZxOtniy
>>790
ブラウザのキャッシュクリアしてみ。
792:Now_loading...774KB
07/10/25 09:16:54 okiGzzI4
>>789
何を教えればいいのか俺には分からないんだが
変に重くなったりしない限りはそういうもんなので心配しないで大丈夫
793:Now_loading...774KB
07/10/25 09:27:10 a7tUtpms
テキストボックスに入力したものをボタンを押すと
他のテキストボックスに入力される っていうASってある?
あれば教えていただきたい
794:Now_loading...774KB
07/10/25 10:46:06 7B7qaW8b
>>782
㌧クス
795:Now_loading...774KB
07/10/25 12:01:44 TzFr2+vP
MovieClipの_widthを設定すると表示されなくなってしまうんですが、
これは仕様ですか?
LoadMovieの後です。
_xとか_yは設定してもちゃんと反映されて表示するんですが。
796:Now_loading...774KB
07/10/25 12:44:32 T6GVh0dz
>>787
すいません。カキコしたのはこことflash質問スレのみです。
flash質問スレの質問取り下げてきます。
797:775
07/10/25 14:18:39 DzABpMvh
>>779
ありがとう。
ちょっと思ったのと挙動が違うのですが、(MC上のobjectが参照されてしまうので)なんとなく理解できました。
も少し試行錯誤してみます。
>>795
AS3の.widthなら普通に反映されましたよ。
798:Now_loading...774KB
07/10/25 17:25:51 1wgJvXC7
mcの中にloadMovieしたswfに含まれるmcをアクセスする方法が分かりません。
まず、_rootに配置したmc「aaa」の中に配置したmc「bbb」にアクセスするには
_root.aaa.bbb
と記述すればオケ。
_rootに配置したmc「aaa」の中に読み込んだ外部swf「bbb.swf」の中にあるmc「ccc」にアクセスするにはターゲットパスはどう記述すればいいのでしょう。
通常通り
_root.aaa.ccc
と記述しても、上手く動いてくれません。
_nameをtraceしようとしてもundifinedと言われて困ってしまっています。
誰かヘルププリーズ。
799:Now_loading...774KB
07/10/25 17:35:04 1wgJvXC7
>>798
>mcの中にloadMovieしたswfに含まれるmcをアクセスする方法が分かりません。
mcにアクセスする方法が分かりません。
800:Now_loading...774KB
07/10/25 17:49:00 eGg7yBOp
>>798
MovieClipLoder.loadClipとonLoadInitでヘルプれ
801:Now_loading...774KB
07/10/25 18:59:45 TzFr2+vP
矩形ツールで四角を描いて、それをムービークリップとリンケージを適応し、
それをダブルクリックして編集状態にすると、矩形が出てきますが、
編集でのAlpha値はいじれるんですが、ActionScript上からいじる方法が見つかりません。
this._alphaだと上に置いたムービークリップも消えてしまうので、
シェイプ(?)のみにAlpha値を適応したいんですが、何か方法はあるんでしょうか?
802:Now_loading...774KB
07/10/25 19:01:47 whJwIs1L
>801
アルファ弄りたい部分だけMCにする
803:Now_loading...774KB
07/10/25 23:03:09 iHmsOFFX
質問です。
actionscript内部で、動的に wmode を設定することは可能なのでしょうか?
"transparent" と "設定無し" を、必要に応じて切り替えたいのです。
どなたかご教授下さいませ。
804:Now_loading...774KB
07/10/26 01:48:27 ox21ABYY
>>803
後ろに目隠し用の長方形を置いといて出したり消したりするんじゃダメなの?
805:Now_loading...774KB
07/10/26 02:04:02 j5u9foMZ
>>804
アドバイス有難うございます。
今回は、Firefoxでコンテキストメニューを利用するタイミングで"設定無し"にして、
swfの上に画像を重ねて表示するタイミングで"transparent"にしたいのです。
そもそも、WindowsのFirefoxでwmode="transparent"な状態で、
コンテキストメニューを利用することが出来れば万事解決なのですが・・
806:Now_loading...774KB
07/10/26 06:48:36 qTQMF/kN
>>798
ローディング完了する前にtraceしてるから出ないのでは?
↓みたくクリックで表示すりゃでるんじゃないかな。
onMouseUp = function(){
trace("ローディングしたMCのプロパティ");
}
807:Now_loading...774KB
07/10/26 12:14:16 /rQqTkUm
LoadVarsを継承したクラスを作ったんですが、
var setting:Setting = new Setting();
とやってもコンストラクタが呼ばれません。
なぜ?
class Setting extends LoadVars {
function Setting() {
trace("!");
}
}
808:Now_loading...774KB
07/10/26 12:20:35 qTQMF/kN
>>807
セーブしてないとか、パスが通ってないとかだろ。
普通に出るよ。
809:Now_loading...774KB
07/10/26 12:29:30 /rQqTkUm
>>808
そのとおりでした。
810:Now_loading...774KB
07/10/26 16:40:10 QdzB5lke
初歩的な質問かもしれませんがAS3.0でわからないことがあります。
var MCArray:Array = new Array();
var MC:MCClass;
function A {
var i:Number = 0;
for ( i ; i< 10 ; i++ ){
MC = new MCClass();
addChild( MC );
MCArray.push( MC );
}
}
function B {
var i:Number = 0;
for ( i ; i< 4 ; i++ ){
removeChild ( this[MCArray[i]] );
}
}
こんな感じで、10個MCを作り、あとで配列に登録されているMCを消そうと思ったのですが、
「main にプロパティ [object MCClass] が見つからず、デフォルト値もありません。」
というエラーがでます。
配列で、MCの管理のしかたをおしえてください!!
811:Now_loading...774KB
07/10/26 16:45:51 ZZOKQYYB
removeChild (MCArray[i] );
試してないけどこうか?
812:Now_loading...774KB
07/10/26 17:08:22 QdzB5lke
>811
成功したけど、こんなエラーが出る
「指定した DisplayObject は呼び出し元の子でなければなりません。」
。。。
違うところを間違えてるのかな
813:Now_loading...774KB
07/10/26 17:13:47 QdzB5lke
あ、すまん、
全然違うところ間違えてた
すまんかった。
814:Now_loading...774KB
07/10/27 02:06:11 2EAWWJ7o
vistaでtrace関数が動作してる人っていますか?
debugplayerインストールして環境変数HOMEDRIVE,HOMEPATHをきちんと設定して、mm.cfgも置いてるんですが
なんにもログを吐き出してくれません…
困ったー
815:Now_loading...774KB
07/10/27 02:27:08 USNFYVrk
してるよ。お前の設定がウンコなだけだろ。
816:Now_loading...774KB
07/10/27 10:29:43 uty+q7Nf
どういう名前の技術だったかわすれましたが
var _this = this;
myVars.onLoad = function (bSuccess)
{
if ( bSuccess )
{
_this.ary = new Array();
_this.ary['test'] = "hoge";
_this.test = "hoge";
}
}
こんな感じの処理ってできないんすかね?
関数は呼べてるんだけど、変数への値の格納が出来なくてundefinedになる。
817:Now_loading...774KB
07/10/27 10:52:28 5OdwBMgR
>>816
何のためにbSuccessをif文で判定してるんだよw
818:Now_loading...774KB
07/10/27 11:48:30 P8dJTKxJ
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
MC内のテキストフィールドの背景色で質問です。
デジタル時計内の数字が指定した数字になったとき、時報として数字(青色)の背景が
オレンジ色に変わるようにしたいのですが変わりません。
例えば、12時になったとき _root.setTimeF = true; として onClipEvent(enterFrame) で
if (_root.setTimeF == true) {
trace(" Path= "+_root.clockM.ji_ins); //パス確認用
_root.clockM.ji_ins.backgroundColor = 0xFF6600; //root内のclockMのji_insの背景をオレンジに
}
と書いてたところ、12時にはif内のtraceは実行されますが、背景は白のままです。
考えられる原因は何でしょうか?
パスは正しくつながっているようですが。。。。
819:Now_loading...774KB
07/10/27 11:57:45 5OdwBMgR
background = true;
820:Now_loading...774KB
07/10/27 12:05:15 P8dJTKxJ
>>819
ありがとう
821:Now_loading...774KB
07/10/27 12:21:38 6rLIjjih
プルダウンメニューやチェックボックスをASで生成できる?
822:Now_loading...774KB
07/10/27 12:47:57 w5TP6DGc
>>821
できる
823:821
07/10/27 19:18:17 6rLIjjih
ごめん、やり方が分からないんだ…
824:Now_loading...774KB
07/10/27 19:21:52 5OdwBMgR
>>823
そうかい。日記は自分のBlogに書けよ。
825:Now_loading...774KB
07/10/27 20:47:43 I8lQaoZK
質問です。
flash8で、
ここのサイトのように
(URLリンク(www2.nissan.co.jp))
スクロールして画面が切り替わるようなものを作りたいです。
次がフェードインしながら切り替わって、
その画面のムービークリップ(又は外部swf)が再生される、といった流れです。
戻った時もムービークリップ(又は外部swf)が最初から再生されるようにしたいのですが、
このようなサンプルがある情報サイトなど、どなたかご存知でしょうか。
すみません、あまりAction Scriptに詳しくないので
ご助力の程よろしくお願いいたします。
826:Now_loading...774KB
07/10/27 21:32:33 rPnQTKdU
>821
まず、質問スレッドで「出来る?」って聞き方はやめろ。
たとええ自明であっても、「できるかどうか」の質問と見なされるから
>822や>824みたいな意地悪をされても、きみが悪いことになる。
>824
でも、いくらそうだとしても、質問スレで「できる?」ってのは
「やり方教えてくれ」の意味だってことくらいいちいち言わなくても分かれよ。
諭した上で応えてやれ。わかんなかったらそれこそこそ自分のブログで毒でも吐いてろ。
助けを求めて伸ばした手に小便かけて楽しいか?
さて、>821への解答。UIObjectクラスを使う。
あらかじめ、プルダウンメニュー(コンボボックス)やチェックボックスを
ライブラリに入れておくこと。
プルダウンメニュー(コンボボックス)……
createClassObject(mx.controls.ComboBox,"インスタンス名",深度)
チェックボックス……
createClassObject(mx.controls.CheckBox,"インスタンス名",深度)
深度は数字で指定すること。
作成したら、インスタンス名で、任意のメソッドなりプロパティなり定義すれ。
(各々のやり方は、ヘルプを見た方が早いからそっち見れ)
827:Now_loading...774KB
07/10/27 21:46:46 nhSLsmaS
うぜえな
828:Now_loading...774KB
07/10/27 21:58:22 2bJ+7WCC
>>825
適当にサンプル作ったから、あとは適当に理解してくれ
var page = 0;
leftButton.onRelease = function() {
page--;
slideAction();
}
rightButton.onRelease = function() {
page++;
slideAction();
}
function slideAction() {
var targetX = -page * 720;
var x = contentMC._x;
var dx = ( targetX > x ) ? 20 : -20;
this.onEnterFrame = function() {
x += dx;
if ( Math.abs( x - targetX ) < 20 ) {
x = targetX;
delete this.onEnterFrame;
}
contentMC._x = x;
}
}
829:Now_loading...774KB
07/10/27 22:00:15 7RhKx9wu
826は煽り
830:Now_loading...774KB
07/10/28 02:09:02 ZY1/X5OH
>>826
確かに君の言っている事は正論だが、ここは2ちゃんなので821が全部悪い。以上。
831:Now_loading...774KB
07/10/28 03:24:59 WTcBVQTq
>>>826
>確かに君の言っている事は正論だが、ここは2ちゃんなので821が全部悪い。以上。
キモ過ぎ
832:821
07/10/28 03:31:51 c6SSyPco
いやーーーーー、私のために喧嘩しないでっ!!><
833:Now_loading...774KB
07/10/28 06:42:39 dtCmVtfr
>>826
回答だけ提示しろよw
おまいが一番読めてないw
834:Now_loading...774KB
07/10/28 09:53:25 rjyaoXXD
まあ、これでも見て落ち着けよw
URLリンク(vista.crap.jp)
835:Now_loading...774KB
07/10/28 11:02:19 YPc6n8ko
ガンバ懐かしい
836:Now_loading...774KB
07/10/28 11:28:00 psm+XskH
日経予想スレを思い出す絵だな
837:Now_loading...774KB
07/10/28 11:47:31 lUPeAHBd
ライブチャットのようなシステムを作りたいのですが、
最短で学ぶための覚えるべきことをいくつか挙げてください。
お願いします。
838:Now_loading...774KB
07/10/28 11:51:09 YPc6n8ko
>>837
「自分で調べる」
これにつきる
839:837
07/10/28 12:09:41 lUPeAHBd
>>838
現在、Fles2SDK + ActionScript + それようの鯖
までわかったのですが、レールはそれてないでしょうか?
840:Now_loading...774KB
07/10/28 13:54:44 iK4x5l4L
>>839
まずはFlash Media Serverを買え
あとは知らないから自分でがんばれ
841:837
07/10/28 14:12:12 lUPeAHBd
>>840
それに代わるフリーの物があるようです。
しかし、Webカメラ接続あたりのソースがまったく見つからなかったりと
予定していた一週間では作れそうにないので、おとなしくシステム買い取ります。
もし作れる方がおられましたら、金額提示してください。
ありがとうございました。
842:Now_loading...774KB
07/10/28 16:18:43 WHI3Jum8
>>841
亀レスだけど
・RED5 Server
・続FlashActionScriptバイブル
あたりでも調べてみれ。
843:Now_loading...774KB
07/10/28 17:03:53 MG2mk1Cp
つか、調べてんなら質問する間にそういうのも書き込めよ
なに、回りくどい質問の仕方しやがって
844:Now_loading...774KB
07/10/28 18:50:05 qj0S80ZQ
>>826
すいません。Flashの使い方を1から10まで教えてください。
もちろん無料で。
とか言われたらムカつくだろ。
845:Now_loading...774KB
07/10/29 08:56:19 XKEkGmDx
var topMenu = new ContextMenu();
topMenu.hideBuiltInItems();
topMenu.builtInItems.quality = true;
topMenu.customItems.push(new ContextMenuItem("Noise", this.onSelect));
topMenu.customItems.push(new ContextMenuItem("PerlinNoise", this.onSelect));
this.menu = topMenu;
ビルトインメニューの変更はできるがカスタムメニューの表示がされない。
もうこれバグなんじゃねーの
846:Now_loading...774KB
07/10/29 09:29:20 G2yEOS7J
>>845
どうせ、function onSelect(){}作ってねーとかだろw
847:Now_loading...774KB
07/10/29 09:53:48 xtK4/3Kg
FLASHでバナーを作成するのですが、そのリンクのジャンプ先が定期的に変わります。
getURLでFLASH内でスクリプトとして書いてしまうと、リンク先が変更するたびに.flaデータを修正することになりますよね。
これを、クライアント側で不定期に修正可能なように、外部テキスト(xml)として用意したいのです。
リンク先を外部読み込みにするようなスクリプトを書きたいのですが、よくわかりません。。
方法もしくは参考サイト等をご存知の方がいらっしゃいましたら、教えて頂けないでしょうか。
初歩的な質問で申し訳ありませんが、どうぞよろしくお願いいたします
848:789
07/10/29 09:58:17 otg4St3W
>>792
返事が遅くなって申し訳ない
// ここからフレーム スクリプト
var ids:Array = new Array();
ids.push("MC00"); ~ ids.push("MC99");
var mc:MovieClip = null; var cnt:Number = 0;
var listener:Object = new Object();
listener.onKeyUp = function(){
if (Key.getCode() == 90){
if (mc != null){
mc.removeMovieClip();
mc = null;
}
mc = _root.attachMovie(ids[cnt], ids[cnt].toLowerCase(), _root.getNextHighestDepth());
cnt++;
if (cnt == 100){ cnt = 0; }
}
}
Key.addListener(listener);
// ここまで
画像等をメモリに展開してるから表示するとメモリ使用量が増えるのは分かるけど、
MCを削除したのに前の状態に戻らないのが何故なのかがわからない
849:Now_loading...774KB
07/10/29 10:15:48 G2yEOS7J
>>847
ヘルプを検索すればサンプルコードあるし、ググればいくらでも参考サイト出てくる。
>>848
メモリ解放はGCが行います。いつ行われるかはわかりません。
850:789
07/10/29 10:39:59 otg4St3W
>>849
> メモリ解放はGCが行います。いつ行われるかはわかりません。
それは知ってるんだけど、メモリ使用量が400MBを超えても
GCが起動しないのは変だなぁと思って。
ちなみにAS3では
1.新しくメモリの割り当てが要求された
2.空いているブロックの残りが少ない
の条件でGCが起動するらしい↓
URLリンク(weblogs.macromedia.com)
AS2では上記の条件は当てはまらないけれど…(っていうかAS2での条件が知りたい)
851:789
07/10/29 11:17:01 otg4St3W
ちょっと質問がずれたので修正
MCを attachMovie して作成後 removeMovieClip でMCを削除後→GCが起動した(と仮定)場合、
増えたメモリ使用量分減るのか?ということが知りたい。
自分でサンプル(>>848)作って試した場合減らなかったので。
852:Now_loading...774KB
07/10/29 13:55:31 36s2B32s
>>851
849のサイトを読めば分かる
853:Now_loading...774KB
07/10/29 16:35:01 /zyyAfPu
>>850
どっかに参照残したままにしてんじゃね?
854:789
07/10/29 17:20:20 otg4St3W
>>853
> どっかに参照残したままにしてんじゃね?
うーん…スクリプトは >>848 だけなんですけどね
もう今日はこれの検証をずっとやって疲れた…
検証して思ったけど、画像分のメモリ使用量だけ解放されないっぽい
Flash がそういう作りになってるとしか思えない
それならそれで構わないけど、そうであるというソースが欲しいw
855:Now_loading...774KB
07/10/29 19:20:14 YgzI3nrd
>>854
BitmapDataなら明示的にdispose()しないと開放されないけど、それはちがう?
856:Now_loading...774KB
07/10/29 20:45:44 1nvXQReF
質問です。
FLASHの操作で、ライブラリからシンボルをドラッグ&ドロップして
ステージに配置するようなものを、
まんまFLASHで作りたいのですが、どうにもこうにもできません。
ステージ上でない途中の所で指を離してしまうと
キャンセルと見なして元の場所に戻るようにもしたいです。
ただドラッグ&ドロップで移動させるのではなく、複製するというか、
アイコンを操作するあの感じにしたいのです。
わかりにくい質問ですみません。
何か解法がありましたら教えてください。
MACⅩでソフトはFLASH8です。
857:Now_loading...774KB
07/10/29 20:55:14 1G8Tdd+A
>>856
startDrag でググる。
858:Now_loading...774KB
07/10/30 00:47:38 C89C5gsB
質問です。
環境:WinXP CS3
やりたいことというかアドバイスしていただきたい事
「プレビューではしっかりと読み込まれて表示されるのにパブリッシュ後のファイルは、読み込まれる物と読み込まれないものが発生します。
回避方法等原因のアドバイスをいただけますでしょうか?
やっていることは
メインで複数の外部SWFをバイトで読み込み、配列に格納
MovieClipを継承した自作クラスを8個生成してメインに配置。
自作クラスのコンストラクタは、メインで読み込んだ外部SWFの配列からSWFをLoaderでコピーしてクラス内の配列(SWFとして)に格納
読み込み終了後、配列からランダムでSWFを選び、再生
といった感じのプロセスです。
プレビューですと、全てのクラスで正常に読み込みが終わり再生されるのですが、パブリッシュですと再生されない物ができてしまします(全て読み込まれるときも在りますが、ほとんどの場合1,2つ再生されずに止まっています)
途中までは読み込まれているようですが、それ以降エラー等をはかずに止まっている(私が見つけられていないだけかもしれませんが)
これは、クラスを同時に作成して、そのまま読み込みをやっているため発生してしまう問題なのでしょうか?
やはり一つづつクラス作成→読み込み終了→次のクラス作成 といった手順を踏む方がいいのでしょうか?
アドバイスをよろしくお願いいたします。
859:Now_loading...774KB
07/10/30 00:49:38 ssZpqJVt
そもそもドメインは同じ?
860:858
07/10/30 00:57:06 C89C5gsB
とりあえず ローカル内で動かしているので多分大丈夫だと思います。
861:Now_loading...774KB
07/10/30 01:01:55 CkvGGeq+
>>858
読み込み終了のイベントは何使ってる?
読み込み完了後、1フレーム目の実行(初期化)が完了しないと
命令を受け付けないよ。
862:858
07/10/30 01:12:14 C89C5gsB
>861 contentLoaderInfoのEvent.COMPLETEを使ってます。
メインの配列全てをcopyして使いたかったので、
function completeHandler(evt:Event):void {
クラス内のSWFとして格納する配列[b]=loader.contentLoaderInfo.content;
if(クラス内のSWFとして格納する配列.length<メインのバイトデータが入った配列.length){
try{
i++;
loader.loadBytes(メインのバイトデータが入った配列[i]);
}catch(e:Error){
trace("Error");
}else{
trace("ALL Load");
SWF再生処理
}
}
といった感じです。
863:858
07/10/30 01:14:09 C89C5gsB
訂正:クラス内のSWFとして格納する配列[b]=loader.contentLoaderInfo.content;
→クラス内のSWFとして格納する配列[i]=loader.contentLoaderInfo.content;
ですorz
864:Now_loading...774KB
07/10/30 07:42:49 lNu/bZaa
>>862
各swfを読み込んだかどうかのflg=0の配列を用意。
それぞれのCOMPLETEで該当flgを1に。
メインではtimer使ってその配列をチェックし、
全部1なら次処理に移行するとか、ボタン有効するとかに。
865:Now_loading...774KB
07/10/30 09:11:23 zKzoaZLG
読み込んだswfのサウンドについて質問があります。
以下のように、外部swfを読み込み、用が終わりremoveした後も
読み込んだswfのサウンドが流れてしまいます。以下ソース
*************************************************************************
// ローダーオブジェクトを作成し配置
var loader_obj : Loader = new Loader();
this.addChild (loader_obj);
// ローダーインフォを取得
var info : LoaderInfo = loader_obj.contentLoaderInfo;
//ボタンクリックで削除
function deleteObj(){
info.removeEventListener(Event.OPEN,LoaderInfoOpenFunc);
info.removeEventListener(ProgressEvent.PROGRESS,LoaderInfoProgressFunc);
info.removeEventListener(Event.INIT,LoaderInfoInitFunc);
info.removeEventListener(Event.COMPLETE,LoaderInfoCompleteFunc);
info.removeEventListener(IOErrorEvent.IO_ERROR,LoaderInfoIOErrorFunc);
this.removeChild(loader_obj);
info = null;
loader_obj = null;
}
*************************************************************************
対策方法をご存知の方、ご教示頂けないでしょうか?
つたない文で、申し訳ありませんが、よろしくお願いいたします。
866:Now_loading...774KB
07/10/30 13:23:15 hFAHlylr
AS2しか理解できない厨房でも読めるOOP解説した本ってないですか?
JAVAで解説されても分からん。
867:Now_loading...774KB
07/10/30 14:02:03 LKu7ySAf
>>866
FLASH OOP
868:Now_loading...774KB
07/10/30 20:20:37 0+kTDyJy
1.38777878078145e-16って何?
869:Now_loading...774KB
07/10/30 20:26:52 mTjvJPix
>>868
0.000000000000000138777878078145のこと。
ここで聞くな。
870:Now_loading...774KB
07/10/31 02:29:23 23/PKNiq
var request:URLRequest = new URLRequest("introMovie.swf");
var loader:Loader = new Loader();
(中略)
loader.load(request);
addChild(loader);
という感じで外部SWFを読み込んで配置したいのですが、0,0の位置じゃなく、上から200pxのセンターの位置に配置したい場合はどのように記述すればいいでしょうか?
よろしくお願いいたします。
871:Now_loading...774KB
07/10/31 02:48:14 qCjPV/N4
loader.y=200;
872:Now_loading...774KB
07/10/31 07:29:01 3W/9t0ol
>>865
Loader.unload()でヘルプを検索。先に子のsoundを停止する。
873:Now_loading...774KB
07/10/31 09:26:50 U/MvHL3p
>>872
ありがとうございました。
解決いたしました。
874:Now_loading...774KB
07/10/31 12:19:33 23/PKNiq
>>871
ありがとうございます!
875:Now_loading...774KB
07/10/31 13:48:48 TMViN7IU
>>867
これってOOPを一から理解するには良書じゃないって言われたんだけどどう?
876:Now_loading...774KB
07/10/31 15:46:43 ICmQjwRF
rascut便利すぎワロス
普段使わないRuby入れたりと導入が面倒くさかったけど
877:Now_loading...774KB
07/10/31 20:13:12 qoeOHWh/
一定時間たつと消えてしまうのをなんとかしたいのです。
ある空のMCの1フレーム目に
loadMovie("aaa.swf",this);
と外部swfを読み込んで表示させています。
しかし、このswfが5分くらい?たつと消えてしまいます。
この外部swfは
単なるアニメーションで最終フレームには
stopを書いているのですが…
もうひとつloadMovieで読み込んでいる所は問題なく
ずっと表示されるのですが、なぜ消えるのかわかりません。
初心者の質問で見当違いでしたら申し訳ないですが
どなたかお答えいただければ幸いです。
878:Now_loading...774KB
07/10/31 21:30:30 cfUSy/NY
質問があります、
URLリンク(www.nutrigloss.jp)
の画面右側で動いているblogパーツをクリックすると、
画面外に飛び出すような動きをするのですが、
これってどう作っているんでしょうか?
javascriptでウインドウを作って、
そこで新規swfを再生って感じでしょうか?
作り方を解説しているようなサイトが有れば、
ぜひ教えて下さい先輩方・・・
879:level0
07/10/31 21:41:53 UKE8dAE5
先生方、質問です。
出力エラーで、
**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 16:')' または ',' が必要です。
duplicateMovieClip('move', 'move' add mc, mc);
**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 17:')' または ',' が必要です。
setPropert("move" add mc, _x, 230+Number(x*4));
ActionScript エラー数 :2 報告済みエラー :2
と、出ます。
この場所に行きどのように修正すればよろしいでしょうか。
すみませんが、よろしくお願いします。
880:Now_loading...774KB
07/10/31 22:02:52 XBREvtF8
>>879
>**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 16:')' または ',' が必要です。
>duplicateMovieClip('move', 'move' add mc, mc);
>**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 17:')' または ',' が必要です。
>setPropert("move" add mc, _x, 230+Number(x*4));
Flash 5以降のActionScriptの文法を学ばれた方がよいように思われます。
Flash Player 7以前でパブリッシュすれば、エラーは生じません。
Flash 8オンラインヘルプ[ActionScript 2.0リファレンスガイド] >
[使用されなくなったActionScript] >
[使用されなくなった演算子の一覧]より引用:
add
Flash Player5以降では、使用しないでください。
Flash Player 5以降では、コンテンツの作成時に加算(+)演算子を使用することをお勧めします。
この演算子は Flash Player 8以降ではサポートされていません。
あと、setPropertyな
881:Now_loading...774KB
07/10/31 23:05:11 RTx7Bp3x
質問です。
操作対象の絵をカーソルキーの上下左右入力ごとに変えるにはどうすればいいでしょうか?
どうか教えて下さいませ。
882:Now_loading...774KB
07/10/31 23:55:20 haYjhWhN
>>881
具体的に書いてくれ
883:Now_loading...774KB
07/11/01 00:00:37 8H07fvkb
私も質問で悪いのですが、
現在AS3.0を勉強中なんですが、どうしてもテキストフィールドにフォーカスをスクリプトから当てる事ができません。
具体的には
ドキュメントクラス→テキストクラス→テキストフィールド
↑これ
テキストクラスに
mytext_field.setFocus();
と書いたら
[1061: 未定義である可能性のあるメソッド setFocus を、静的型 flash.text:TextField の参照を使用して呼び出しました。]
ってな感じのエラー
MovieClip( mytext_field ).setFocus();
って書いたら
強制変換に失敗。。。
setFocus("mytext_field");
って書いたら
[1180: 未定義である可能性が高いメソッド setFocus の呼び出しです。]
どうしたらいいんでしょうか?
884:level0
07/11/01 00:03:57 rnZVY++G
>>880先生
ありがとうございます。
勉強になります。
885:Now_loading...774KB
07/11/01 00:05:08 8H07fvkb
質問だけでは失礼なので、ちょっと消化します。
>>881
一番、簡単な方法は
操作対象の絵のムービークリップを4つのフレームに分ける
一つずつフレームに名前をつけてあげて(例えば、上下右左)
その対象の絵のムービークリップのフレームアクションに
それぞれの分岐(スイッチ使ったららくじゃね)を書いてあげる
これでOKじゃね?
886:Now_loading...774KB
07/11/01 00:05:10 xLqukwEE
AS3.0のコンポーネントのデータグリッドで選択したもの値を取得するにはどうすればいいでしょうか。
887:Now_loading...774KB
07/11/01 00:05:59 Ei/ODTzl
>>883
stage.focus = mytext_field;