トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     on(release)がなくなる!?
投稿するにはまず登録を

| 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
youich
Åê¹ÆNo.27476
投稿日時: 2006-7-29 3:39
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: on(release)がなくなる!?
これって、publicを指定すると動作するんですがそこら辺りどうなんでしょう?
package{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    public  class MC extends MovieClip{
      public var next_btn:SimpleButton;
	
        function MC(){
            next_btn.addEventListener(MouseEvent.CLICK, clickFunc);
        }
        function clickFunc(event:Event):void {
            trace("CLICK!",event.target.name);
        }
    }
}

しかしこれができないと効率的に致命的な気がします。
今は他のムービークリップにこのクラスやサブクラスを関連づけるのもできないですよね。。。


----------------
- yo

森 巧尚
Åê¹ÆNo.27477
投稿日時: 2006-7-29 4:17
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: on(release)がなくなる!?
引用:

youichさんは書きました:
これって、publicを指定すると動作するんですがそこら辺りどうなんでしょう?

あれ、それで動作します?僕は動作しなかったんですが、何が違うんだろう。よくわからなくなってきた。

違う方法としては、Document classをMCにして、ボタンのムービークリップのクラスをMC2にして、そのムービークリップはステージには置かず、ライブラリにだけに置いた状態で、
package{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    public  class MC extends MovieClip{
		public var next_btn:MC2;

	  	function MC(){
			next_btn = new MC2();
			addChild(next_btn);
            next_btn.addEventListener(MouseEvent.CLICK, clickFunc);
        }
        function clickFunc(event:Event):void {
            trace("CLICK!",event.target.name);
        }
    }
}

とすれば、ライブラリに作ったムービークリップを使えますけど、そういうことではないのですか・・・


----------------
森 巧尚
http://www.ymori.com

Duke15
Åê¹ÆNo.27479
投稿日時: 2006-7-29 4:51
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: on(release)がなくなる!?
私もyouichさんのは動作しませんでした。
そして、Document Class設定は森さんのやり方と同じで

package{
    import flash.display.MovieClip;
    //import flash.display.SimpleButton;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    public  class MC extends MovieClip{
        //public var next_btn:MC2;

        public function MC(){
            var next_btn:MovieClip = new MC2();
            addChild(next_btn);
            next_btn.addEventListener(MouseEvent.CLICK, clickFunc);
        }
        private function clickFunc(event:Event):void {
            trace("CLICK!",event.target.name);
        }
    }
}

として、ちゃんと動作しました。

引用:

森 巧尚さんは書きました:
あれ、それで動作します?僕は動作しなかったんですが、何が違うんだろう。よくわからなくなってきた。

違う方法としては、Document classをMCにして、ボタンのムービークリップのクラスをMC2にして、そのムービークリップはステージには置かず、ライブラリにだけに置いた状態で、
package{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    public  class MC extends MovieClip{
		public var next_btn:MC2;

	  	function MC(){
			next_btn = new MC2();
			addChild(next_btn);
            next_btn.addEventListener(MouseEvent.CLICK, clickFunc);
        }
        function clickFunc(event:Event):void {
            trace("CLICK!",event.target.name);
        }
    }
}

とすれば、ライブラリに作ったムービークリップを使えますけど、そういうことではないのですか・・・


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

野中文雄
Åê¹ÆNo.27480
投稿日時: 2006-7-29 5:33
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: on(release)がなくなる!?
私の環境(Mac OS X.4.6)では、問題なく動作します。
引用:
Duke15さんは書きました:
私もyouichさんのは動作しませんでした。

package{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    // import flash.events.Event;
    import flash.events.MouseEvent;
    
    public  class MC extends MovieClip{
		public var next_btn:SimpleButton;
    
        function MC(){
            next_btn.addEventListener(MouseEvent.CLICK, clickFunc);
        }
        // function clickFunc(event:Event):void {
        function clickFunc(event:MouseEvent):void {
            trace("CLICK!", event.target.name);
        }
    }
}


----------------
 

Duke15
Åê¹ÆNo.27481
投稿日時: 2006-7-29 6:15
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: on(release)がなくなる!?
私の環境(WinXP sp2)では動作しないです。
-------------------------
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at MC$iinit()
at flash.display::Sprite/flash.display:Sprite::constructChildren()
at flash.display::Sprite$iinit()
at flash.display::MovieClip$iinit()
at Timeline0_eabdca48e81dd54fa9a8bb7f4efc6b31$iinit()
-----------
引用:

野中文雄さんは書きました:
私の環境(Mac OS X.4.6)では、問題なく動作します。
package{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    // import flash.events.Event;
    import flash.events.MouseEvent;
    
    public  class MC extends MovieClip{
		public var next_btn:SimpleButton;
    
        function MC(){
            next_btn.addEventListener(MouseEvent.CLICK, clickFunc);
        }
        // function clickFunc(event:Event):void {
        function clickFunc(event:MouseEvent):void {
            trace("CLICK!", event.target.name);
        }
    }
}


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

野中文雄
Åê¹ÆNo.27484
投稿日時: 2006-7-29 9:47
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: on(release)がなくなる!?
MovieClipシンボル内に、Buttonインスタンスnext_btnを配置していますか?

next_btnが配置されていない場合の[Output]パネルより引用:
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at MC$iinit()
at flash.display::Sprite/flash.display:Sprite::constructChildren()
at flash.display::Sprite$iinit()
at flash.display::MovieClip$iinit()

引用:
Duke15さんは書きました:
私の環境(WinXP sp2)では動作しないです。
-------------------------
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at MC$iinit()
at flash.display::Sprite/flash.display:Sprite::constructChildren()
at flash.display::Sprite$iinit()
at flash.display::MovieClip$iinit()
at Timeline0_eabdca48e81dd54fa9a8bb7f4efc6b31$iinit()
-----------

今さらですが、別のスレッドにした方がよかったですね。


----------------
 

Duke15
Åê¹ÆNo.27485
投稿日時: 2006-7-29 10:24
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: on(release)がなくなる!?
MovieClip
|
------>next_btn:Button
の入れ子ですか。
next_btn:MovieClip
でやってました。

なるほど、それならば動作しました。

引用:
引用:

野中文雄さんは書きました:
MovieClipシンボル内に、Buttonインスタンスnext_btnを配置していますか?


今さらですが、別のスレッドにした方がよかったですね。

そういう思いもしてました。


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

Shimon Hori
Åê¹ÆNo.27486
投稿日時: 2006-7-29 10:24
新米
居住地:
投稿: 26
使用環境:
WinXP / Flash8Pro / FashCS3Pro / FlexBuilder3 Beta2 / AIR Beta2
Re: on(release)がなくなる!?
野中文雄さんの提示してくださったコードを使うと
Win用 Flash9 でも動作確認できました。
ありがとうございます。

気になるのは public クラスかつpublic プロパティでなければならないという点です。

ということは、Flash9を使ってムービークリップ(MC)内に視覚的に配置したインスタンスは
SWF実行時にパッケージ外の他のクラス(もしくはオブジェクト)メソッド内で勝手に addChild されている・・・ということなんでしょうか?

flash.display::Sprite/flash.display:Sprite::constructChildren()
↑この辺りのメソッドが怪しいかな?と思ったり・・・

引用:

野中文雄さんは書きました:
今さらですが、別のスレッドにした方がよかったですね。


確かに・・・そうですね。
予想以上にたくさんの返信をいただいてしまいました。^^;


----------------

森 巧尚
Åê¹ÆNo.27487
投稿日時: 2006-7-29 10:32
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: on(release)がなくなる!?
引用:

野中文雄さんは書きました:
MovieClipシンボル内に、Buttonインスタンスnext_btnを配置していますか?

Flash9上でクラス「MC」と紐付けされたムービークリップ内に
ボタンインスタンス(インスタンス名:next_btn)を配置したのですが、

ああ、そういうことだったんですね。
Flash9上でクラス「MC」と紐付けされたムービークリップを
ボタンインスタンス(インスタンス名:next_btn)として配置したのですが、

と思い込んで作ってました。
「説明にあるとおり外部ファイルで書いてみよう」って言ってたから、スクリプトと階層の位置関係はそのままだと思ってました。階層構造自体が変わってたんですね・・・

引用:
今さらですが、別のスレッドにした方がよかったですね。


「on(release)がなくなったら、では具体的にどう書かないといけなくなるのか」ということなので、いいんじゃないですか?
たかが「ボタンを押したらCLICK!と表示する」スクリプトだけでも、これだけいろいろな書き方があって、混乱するということですから・・

#おっと、なぜpublicにする必要があるかどうかってことになりそうだったら、別のスレッドにしたほうがいいかもしれませんね。
#ただボタンを押しただけのために、どうしてFlashの内部ではどのような構造で作られているか、まで想像して作らないといけないんだか・・


----------------
森 巧尚
http://www.ymori.com

Shimon Hori
Åê¹ÆNo.27488
投稿日時: 2006-7-29 11:08
新米
居住地:
投稿: 26
使用環境:
WinXP / Flash8Pro / FashCS3Pro / FlexBuilder3 Beta2 / AIR Beta2
Re: on(release)がなくなる!?
引用:

森 巧尚さんは書きました:
「説明にあるとおり外部ファイルで書いてみよう」って言ってたから、スクリプトと階層の位置関係はそのままだと思ってました。階層構造自体が変わってたんですね・・・


そうなんですよー。説明がわかりにくくて申し訳なかったです。

引用:

#おっと、なぜpublicにする必要があるかどうかってことになりそうだったら、別のスレッドにしたほうがいいかもしれませんね。

#ただボタンを押しただけのために、どうしてFlashの内部ではどのような構造で作られているか、まで想像して作らないといけないんだか・・


おっしゃるとおりFlash内部の話ですし・・・。現時点ではおまじないとして public をつける! という理解でもオッケーでしょう?
正式版が出たらヘルプを読みます


----------------

« 1 ... 7 8 9 (10) 11 »
| 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops