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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     画面にテキストが表示されない件(addChild辺り?)
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
t_miyazaki
Åê¹ÆNo.33284
投稿日時: 2007-5-9 10:33
新米
居住地: 名古屋
投稿: 5
使用環境:
Pro 8.0
FlexBuilder2
XP Pro(SP2)
Re: 画面にテキストが表示されない件(addChild辺り?)
>野中さん

表示できました!ありがとうございます。
ProjectConsole の継承につきましてSpriteからUIComponentに変更したところテキストの表示が確認できました。


引用:

public class ProjectConsole extends Sprite{
...[中略]...
}

                ↓↓
引用:

public class ProjectConsole extends UIComponent{
...[中略]...
}


Flexでは、Spriteの継承で描画(表示)を行えない?ということでしょうか?(私のイメージではFlash9と同じ記述で使用出来ると思い込んでいたもので…)
パッケージについてちゃんと理解出来ていないようなので、もう少し勉強してきます。

:追記
Flex Builder2でプロジェクト作成時に、「Flexプロジェクト」を選択した場合はextends UIComponentとしなければいけないみたいですね。。「ActionScriptプロジェクト」を選択すると、Flash9と同様にextends Spriteでも問題ありませんでした。
野中文雄
Åê¹ÆNo.33275
投稿日時: 2007-5-8 18:49
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 画面にテキストが表示されない件(addChild辺り?)
mxパッケージは、Flex専用ですよね。UIComponentをSpriteクラスに変更して動作するようなら、UIComponentクラスの実装を確認しなければならないと思います。

ところで、ProjectConsoleの継承をUIComponentクラスにすると、どうなるでしょう?
引用:
t_miyazakiさんは書きました:
実行すると以下のようなエラーが出てしまいました。

TypeError: Error #1034: 強制型変換に失敗しました。assets.com.main::ProjectConsole@62d6be1 を mx.core.IUIComponent に変換できません。

このエラーについてFlex特有なのかはわかりませんが、
mx.core.UIComponentをimportして以下のように変更してみました。
 public function buildConsole():void{

  projectConsoleObj = new ProjectConsole();
  var c:UIComponent = new UIComponent();//追記
  c.addChild(projectConsoleObj);//追記
  this.addChild(c);//追記
 }

こうするとエラーは表示されなくはなったのですが、何も表示されませんでした。。。
問題はUIComponent??の部分なのでしょうか?


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

t_miyazaki
Åê¹ÆNo.33273
投稿日時: 2007-5-8 16:54
新米
居住地: 名古屋
投稿: 5
使用環境:
Pro 8.0
FlexBuilder2
XP Pro(SP2)
Re: 画面にテキストが表示されない件(addChild辺り?)
>野中さん

Flash 9 Pubで試したところ、

 this.addChild(projectConsoleObj);

を追記たらテキストは表示されました。ディスプレイリストに含めていなかったのが問題だったようです。。。

同様にFlexのMXMLでも以下のように追記してみました。

 public function buildConsole():void{

  projectConsoleObj = new ProjectConsole();
  this.addChild(projectConsoleObj);//追記
 }

実行すると以下のようなエラーが出てしまいました。

TypeError: Error #1034: 強制型変換に失敗しました。assets.com.main::ProjectConsole@62d6be1 を mx.core.IUIComponent に変換できません。

このエラーについてFlex特有なのかはわかりませんが、
mx.core.UIComponentをimportして以下のように変更してみました。

 public function buildConsole():void{

  projectConsoleObj = new ProjectConsole();
  var c:UIComponent = new UIComponent();//追記
  c.addChild(projectConsoleObj);//追記
  this.addChild(c);//追記
 }

こうするとエラーは表示されなくはなったのですが、何も表示されませんでした。。。
問題はUIComponent??の部分なのでしょうか?
野中文雄
Åê¹ÆNo.33272
投稿日時: 2007-5-8 15:16
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 画面にテキストが表示されない件(addChild辺り?)
手元にFlex環境がなくて試せないのですけど、ProjectConsoleインスタンスはディスプレイ(表示)リストに入っていますか?
引用:
t_miyazakiさんは書きました:
assets/com/main 以下にProjectConsoleクラスを作成して、MXML内よりnewしてテキストを表示させようとしているのですが、画面には何も表示されません。
...[中略]...
---MXML内[begin]-----------------------------------------
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="buildConsole();" width="100%" height="100%" backgroundColor="#ffffff" backgroundImage="" viewSourceURL="srcview/index.html">
<mx:Script>
 <![CDATA[
  import assets.com.main.ProjectConsole;

  private var projectConsoleObj:ProjectConsole;

  public function buildConsole():void{

   projectConsoleObj = new ProjectConsole();
  }

 ]]>
</mx:Script>
---MXML内[end]-------------------------------------------
...[中略]...
このinit()の内容をMXML内のスクリプトに直接書くと表示が出来ました。宣言したProjectConsoleクラスの記述ではなぜ表示されないのでしょうか??


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

t_miyazaki
Åê¹ÆNo.33271
投稿日時: 2007-5-8 12:35
新米
居住地: 名古屋
投稿: 5
使用環境:
Pro 8.0
FlexBuilder2
XP Pro(SP2)
画面にテキストが表示されない件(addChild辺り?)
assets/com/main 以下にProjectConsoleクラスを作成して、MXML内よりnewしてテキストを表示させようとしているのですが、画面には何も表示されません。ProjectConsoleクラス内でtraceしてみたところ、[object TextField]と表示されているので、テキストの生成まではなされていると思います。addChild辺りの使用方法に問題があるのでしょうか?

---MXML内[begin]-----------------------------------------
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="buildConsole();" width="100%" height="100%" backgroundColor="#ffffff" backgroundImage="" viewSourceURL="srcview/index.html">
<mx:Script>
 <![CDATA[
  import assets.com.main.ProjectConsole;

  private var projectConsoleObj:ProjectConsole;

  public function buildConsole():void{

   projectConsoleObj = new ProjectConsole();
  }

 ]]>
</mx:Script>
---MXML内[end]-------------------------------------------

---ProjectConsoleクラス[begin]---------------------------

package assets.com.main{

import flash.display.*;
import flash.text.*;
import mx.core.UIComponent;

public class ProjectConsole extends Sprite{

  public function ProjectConsole(){

   this.init();
  }

  private function init():void{

   var textF:TextField = new TextField();
   textF.text = "Hello Hello";
   textF.autoSize = TextFieldAutoSize.LEFT;
   textF.selectable = true;

    var c:UIComponent = new UIComponent();
    c.addChild(textF);
    addChild(c);
  }
}
}
---ProjectConsoleクラス[end]-----------------------------


このinit()の内容をMXML内のスクリプトに直接書くと表示が出来ました。宣言したProjectConsoleクラスの記述ではなぜ表示されないのでしょうか??
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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