wonderflで作ったクラスを、flaで呼び出す方法について

このQ&Aのポイント
  • wonderflで作ったクラスを、flaで呼び出す方法について教えてください。
  • flaファイルの同じ階層に置いたクラスを使って、swfファイルを作りたいです。
  • 手順として、外部クラスをimportし、そのクラスを使って変数を作り、変数をaddChildするという方法を試していますが、うまくいきません。エラーが出てしまいます。どこが間違っているのでしょうか?
回答を見る
  • ベストアンサー

wonderflで作ったクラスを、flaで呼び出す

3Dオブジェクトが回るクラス http://wonderfl.net/c/cOMF を、同階層に置いたflaファイルで走らせて、swfファイルを作りたいのですが、 何か根本的に間違っているようで、どうしてもうまくいきません。 以下の手順だと思うのですが、、 1) 外部クラスをimportする 2) そのクラスを使って変数を作る?(型は?) 3) 作った変数をaddChildする? flaの1フレーム目: A) MovieClipで import PV3D_01; import flash.display.MovieClip; var showUp:MovieClip = new PV3D_01(); addChild(showUp); 上記を走らせると、以下のエラーが出ます。 1067: Implicit coercion of a value of type PV3D_01 to an unrelated type flash.display:MovieClip. B)Spriteを使ってみると import PV3D_01; import flash.display.Sprite; var showUp:Sprite = new PV3D_01(); addChild(showUp); こんなエラーが出ます。 INFO: Papervision3D 2.0.0 (March 12th, 2009) TypeError: Error #1009: Cannot access a property or method of a null object reference. at PV3D_01() at PV3D_01_kudou_fla::MainTimeline/frame1() おわかりの方、どうか!よろしくお願いします。

  • Flash
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

こういうことでしょうか↓? 教えて!goo より 「wonderflのコードをCS4で再現」 http://okwave.jp/qa/q5141080.html

asobuno2010
質問者

お礼

!!できました! ステージのプロパティに指定する、だったのですね。 教えていただいたadobeのページも読み込んでみます。 ほんとうにありがとうございました。

関連するQ&A

  • FlashLite4.0について

    いつもお世話になっております。 FlashLite4.0についてお聞きしたく存じます。 以下のようにFlashLite4.0でコードを書き勉強中です。 (Flashも始めたばかりなのですが。) example.fla(アクションフレーム) -------------------------------------------------- stop(); import com.Example; var example:Example = new Example; com/Example.as -------------------------------------------------- package com {  import flash.display.Sprite;  public class Sample08 extends Sprite {   public function Sample08() {    init();   }   protected function init():void {    var time:Time = new Time;    addChild(timeView);   }  } } com/Time.as -------------------------------------------------- package com {  import flash.display.MovieClip;  public class TimeView extends MovieClip {   public function Time() {    // これが出力されると思っております。    trace("time");   }  } } パブリッシュをすると「time」が出力されると考えていたのですが出力されません。 また、flashLite4.0で動的にテキストを出力するにはどうしたらよろしいでしょうか。 ご教示よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • AS3.0 カスタムクラスのMCをMainで呼び出

    AS3.0 カスタムクラスのMCをMain.asで呼び出ししたいのですが、上手く機能しません。 どうして動かないのか具体的に教えてもらえると助かります。 エラー・コード:Main.as, Line 20 1180: Call to a possibly undefined method createBox. 【Main.as】 package{ import flash.display.*; import flash.events.Event; import flash.events.TimerEvent; import flash.utils.Timer; import boxClass; public class Main extends Sprite{ //property private var item:boxClass; //constractor public function Main(){ box(); } //method public function box():void{ item=new boxClass(); item.createBox(this); } } } 【boxClass.as】 package{ import flash.display.*; import flash.events.Event; public class boxClass extends MovieClip{//boxクラス //property private var thisClass:Object; //constractor public function boxClass():void{} //method public function createBox(tm:MovieClip):void{ thisClass = this; trace("テスト"); var mc:boxMC=new boxMC(); thisClass.addChild(mc); } } }

  • ActionSccript3.0 クラスについて

    Flash 初心者です。 現在AS3を勉強して半年くらいになります。一通り仕組みは理解できたのですが、2つのクラスを合わせて使うときに詰まってしまいました。内容は、 フルフラッシュで背景画像はリサイズ可能でメニュー・フッター等のサイズが固定のクラス 『BgSet.as』 package { import flash.events.Event; import flash.display.*; import flash.text.TextField; import flash.display.StageAlign; import caurina.transitions.Tweener; public class BgSet extends MovieClip { private var parH:Number; private var parW:Number; public function BgSet() { init(); } private function init():void{ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.BOTTOM_RIGHT; var bw:Number = back_mc.width; var bh:Number = back_mc.height; function arrangeMC():void{ var sw:int = stage.stageWidth; var sh:int = stage.stageHeight; menu_mc.x = sw; main_mc.x = sw/2; main_mc.y = sh/2; footer_mc.y = sh; logo_mc.x = sw; logo_mc.y = sh; back_mc.width = sw; back_mc.height = bh/bw*sw; } arrangeMC(); function stageOnResize(evt:Event):void { arrangeMC(); } } } } と、 背景画像にビットマップでドットを敷き詰めるクラス 『BgBtm.as』 package { import flash.display.BitmapData; import flash.display.Sprite; public class BgBtm extends Sprite { public function BgBtm() { var bmd:BitmapData = new BitmapData(3, 3, true, 0x00ffffff); bmd.setPixel32(0, 0, 0xffffffff); bmd.setPixel32(1, 1, 0xffffffff); var sp:Sprite = new Sprite(); sp.graphics.beginBitmapFill(bmd, null, true, false); sp.graphics.drawRect(0, 0, 1200, 1200); sp.graphics.endFill(); addChild(sp) } } } この二つのクラスを一つずつ実行することは問題なく出来るのですが、二つの.asファイルを『Main.as』から呼び出して実行しようと思いフォルダ『MyProgram』に入れました。 それぞれ package MyProgram{ として、 Main.asは package { import flash.display.MovieClip; import MyProgram.*; としたまでは良かったのですがこの先でつまづいています。。 ここまでで出てきた問題は、 1、BgSetのback_mc・menu_mcへアクセス出来ない。 2、BgBtmのビットマップが表示されない 3、仮にBgSetをflaファイルのドキュメントクラスに定義してBgSet.as内からBgBtmをnewして実行した場合でもビットマップが表示されない。 ということが起きています。 Main.asファイルをいろいろと書き換えて試しているのですが答えが出ません。 どなたかご教授お願い致します。

    • ベストアンサー
    • Flash
  • ASファイルからのstage

    flashcs3 actionscript3.0で作成しています。 asファイル "Test.as" package { import flash.display.DisplayObjectContainer; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.*; public class Test extends Sprite { public function Test() { init(); } private function init() { for (var i:uint = 0; i<10; i++) { var sp:Sprite = new Sprite(); sp.graphics.beginFill(0x00CCFF); sp.graphics.drawRect(i*20,50,20,20); sp.graphics.endFill(); stage.addChild(sp); } } } } flash var hoge2 = new Test(); と書いてflash上のstage上にSpriteをaddChildしたいのですがstageをnullと解釈してしまいます。 この場合flash上のstageを参照するにはどうすれば良いのでしょうか?

    • ベストアンサー
    • Flash
  • 円をランダムで描画していき、最初の円から徐々に透明になる

    現在AS3.0にてランダムで永遠と円を描きながらも、描画した円から順番に透明になっていくスクリプトを書いているのですが、以下のスクリプトですと全体が透明になっていき、最終的に何も残らなくなってしまいます。 常に透明度1の円を描画しつつも、先に描画した円から徐々に透明になっていくスクリプトにするにはどうすればよいのでしょうか?ご教授お願いできればと思います。 addEventListener(Event.ENTER_FRAME, rain); import flash.display.Sprite; import flash.display.MovieClip; var mySprite:Sprite = new Sprite(); var myClip:Sprite = new Sprite(); addChild(myClip); function rain(event:Event):void { with(mySprite.graphics) { var circle:int = Math.floor(Math.random()*100); var stageX:int = Math.floor(Math.random()*stage.stageWidth); var stageY:int = Math.floor(Math.random()*stage.stageHeight); beginFill(0x000000); drawCircle(stageX, stageY , circle); endFill; myClip.addChild(mySprite); var diff:Number = 0.01; myClip.alpha -= diff; } }

    • ベストアンサー
    • Flash
  • as3 ムービークリップにビットマップデータを挿入するクラスがうまくい

    as3 ムービークリップにビットマップデータを挿入するクラスがうまくいかない 上記のとおりなんですが、 前提として ■ライブラリにjpgを一枚読み込んで、Photoというクラス名でリンケージしてあります。 ■ステージにmcというムービークリップを配置しています。 mcにビットマップ化したjpgをaddchildしたかったので、 メインフレームに下記を書きました。 -------------------------------------------------------- var name_str:String = "Photo"; var myClass:Class = Class(getDefinitionByName(name_str)); var bmd:BitmapData = new myClass(0, 0); var bm:Bitmap = new Bitmap(bmd); bm.pixelSnapping = PixelSnapping.ALWAYS; bm.smoothing = true; mc.addChild(bm); -------------------------------------------------------- ※今後動的に生成するのでクラス名は変数にしています。 これは問題なく行きました。 上記を外部クラス化したかったので、 下記のようにしました。 ■PhotoClass ---------------------------------------------------------------------- package { import flash.display.MovieClip; import flash.events.Event; import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.getDefinitionByName; import flash.display.PixelSnapping; public class PhotoClass extends Bitmap { private var myClass:Class;//クラス名 private var bmd:BitmapData; private var bm:Bitmap; //コンストラクタ public function PhotoClass(_name:String) { myClass = Class(getDefinitionByName(_name)); bmd = new myClass(0, 0); bm = new Bitmap(bmd); bm.pixelSnapping = PixelSnapping.ALWAYS; bm.smoothing = true; init(); } public function init():Bitmap { return bm; } } } ---------------------------------------------------------------------- ■メインフレーム var photoAdd:Bitmap = new PhotoClass("Photo"); mc.addChild(photoAdd); これがうまくいきません。 エラーはないのですが、ちゃんとmcに画像が読み込まれません。。。。 ご教授いただければと思います!

    • ベストアンサー
    • Flash
  • AS3.0・自作クラス内でフレームレート変更

    タイトルの通り自分で作った自作クラス内でフレームレート変更の操作をしたいのですが、上手くいかず困っています。 自作クラス内でstage.frameRateにアクセスしようとするとエラーをはいてしまいます。 自作クラス:A.as(省略してあります) package { import flash.display.*; public class MyClass { private var f:int = stage.frameRate; public function MyClass() { //... } } } -- ・メインとなるクラスからしかstageにはアクセスできないのでしょうか? 自分としては、このクラスでボタンによってフレームレートを変更する機能をつけたいので、このような書き方をしたいのですが・・・。 ・また、このクラス内でaddChilde()するときもエラー(1180: 未定義である可能性が高いメソッド addChild の呼び出しです。)をはいてしまうのですが、これはこのクラスのインスタンスを生成するときに、addChildするための場所(?)を引数として持ってこないといけないのでしょうか? わかる方ご回答よろしくお願いします。

    • ベストアンサー
    • Flash
  • AS用に書き出されたクラスの取得

    シンボルプロパティで「ActionScript用に書き出し」をしたクラスの取得方法は通常、 --- var testX:MovieClip = new testA; addChild(testX); --- ですが、 「testA」のところをテキストにして呼び出したいと考えています。 --- var testX:MovieClip = new ("test"+"A"); --- こんな感じです。 「getChildByName」を使ってみたのですがダメでした。 --- var testX = MovieClip(getChildByName("test"+"A")); --- 何か良い方法はあるのでしょうか。

    • ベストアンサー
    • Flash
  • addChildした後に操作したい。

    package { import flash.display.*; public class goo extends Sprite { public function goo() { create(); stage.myRect.y =100;// 1119 未定義である可能性が高い・・・エラー。 } public function create() { var myRect:Sprite = new Sprite(); myRect.graphics.beginFill(0xFF0000); myRect.graphics.drawRect(10,10,200,100); myRect.name = "rect"; addChild(myRect); } } } addChildした後にmyRectのyの位置等を変更するにはどうすればよいでしょうか。 また、この問題について詳しく載っているURL等があれば教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • AS3.0 写真の切り替え

    調べても調べても漠然とした状態が続いてるので質問させていただきました。 まず、サンプルとしてこんなようなものが作りたいんです。 http://www.subaru-sls.co.jp/ ここの企業みたいな写真が一定時間でその場所その場所に移動していくというのを作りたいのですが、今後のことを考え、タイムラインにASを組むのではなく、外部AS(ドキュメントクラス?)だけで作りたいのです。 因みに写真などの配置はなんとかできたのですが、写真が切り替わるのがまったくわかりません。 こちらが現状況のコードになります。↓ package { import flash.display.Sprite; import flash.display.Loader; import flash.net.URLRequest; import flash.display.Shape; import flash.events.TimerEvent; import flash.utils.Timer; import flash.events.MouseEvent; import flash.display.Bitmap; [SWF(width = "550",height = "400")] public class main extends Sprite { //プロパティ var mc01:Sprite = new Sprite(); var mc02:Sprite = new Sprite(); var mc03:Sprite = new Sprite(); var imgUrl01:String = "kabegami1.jpg"; var imgUrl02:String = "kabegami2.jpg"; var imgUrl03:String = "kabegami3.jpg"; var onUrl01:URLRequest = new URLRequest(imgUrl01); var onUrl02:URLRequest = new URLRequest(imgUrl02); var onUrl03:URLRequest = new URLRequest(imgUrl03); var img01:Loader = new Loader(); var img02:Loader = new Loader(); var img03:Loader = new Loader(); var square01:Shape = new Shape(); var square02:Shape = new Shape(); var square03:Shape = new Shape(); var i:int = 0; var timer:Timer = new Timer(20); //コンストラクタ public function main () { init (); } //メソッド private function init () { square01.graphics.beginFill (0x000000); square02.graphics.beginFill (0x000000); square03.graphics.beginFill (0x000000); square01.graphics.drawRect (10, 10, 330, 380); square02.graphics.drawRect (350, 10, 110, 380); square03.graphics.drawRect (470, 10, 70, 380); square01.graphics.endFill (); square02.graphics.endFill (); square03.graphics.endFill (); img01.mask = square01; img02.mask = square02; img03.mask = square03; img01.load (onUrl01); img02.load (onUrl02); img03.load (onUrl03); addChild (square01); addChild (square02); addChild (square03); addChild (img01); addChild (img02); addChild (img03); timer.addEventListener (TimerEvent.TIMER,onTimer); timer.start (); img01.addEventListener (MouseEvent.MOUSE_DOWN,mouseDownHandler); } private function mouseDownHandler (event:MouseEvent):void { } private function onTimer (event:TimerEvent):void { i++; img01.alpha -= 0.01; } } } 長文になってしまいましたが、どうかご教授お願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう