• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AS3の拡大と縮小について)

AS3の拡大と縮小について

dmqの回答

  • ベストアンサー
  • dmq
  • ベストアンサー率80% (21/26)
回答No.2

当方の試験環境はAdobe Flash Builder 4.6(所謂Flex)ですが、 下記のコードで文字が大きく横に伸びるようになりました。 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" applicationComplete="onCompleteHandler(event)">  <fx:Script>   <![CDATA[    import mx.core.UIComponent;    import mx.events.FlexEvent;        [Embed(systemFont="Segoe UI", embedAsCFF="false", fontName="Segoe UI", mimeType="application/x-font")]    private var _font:Class;        protected function onCompleteHandler(event:FlexEvent):void    {     var format:TextFormat = new TextFormat();     format.font = "Segoe UI";     format.color = 0xCCCCCC;     format.size = 24;     var field:TextField = new TextField();     field.autoSize = TextFieldAutoSize.LEFT;     field.embedFonts = true;     field.defaultTextFormat = format;     field.text = "Hello, world!";     field.scaleX = 3;     field.scaleY = 0.8;     var canvas:UIComponent = new UIComponent();     canvas.addChild(field);     addElement(canvas);    }   ]]>  </fx:Script> </s:Application>

関連するQ&A

  • 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); } } }

  • 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
  • PHPの取得情報をFlashで表示する方法

    flashについて質問です。 time.phpに現在の時間を取得する <?php echo date("Y/m/d"); ?> を書いて保存し、 それをtimeLoad.as(AS 3.0)をドキュメントクラスとするflash上で表示したいのですが、 package{ import flash.display.MovieClip; import flash.text.TextField; import flash.text.Font; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLVariables; public class timeLoad extends Sprite{ private var tf:TextField; public function timeLoad():void{ var myRequest:URLRequest = new URLRequest("time.php"); var myLoader:URLLoader = new URLLoader(); myLoader.load(myRequest); tf = new TextField(); tf.defaultTextFormat = new TextFormat("Helvetica",10,0x000000); tf.x = 0; tf.y = 0; tf.text = myLoader.data; addChild(tf); } } } tfの内容が2011.1.1などになるのが目的です。 swfファイル、swfを埋め込んだhtmlファイル、phpファイルは同じ階層にあります。 php側flash側の訂正点をご指摘いただけると嬉しいです。

    • ベストアンサー
    • Flash
  • エラーになってしまいます。

    コンポーネントのコンボボックスでこのように書きました。 コンボボックスの選択肢とは別にテキストをクリックするとフォント名を取得します。 クリックしたテキストに設定されているフォント名を、コンボボックスのセレクト値に したいのですが、どうすればいいでしょうか? ■エラー内容 TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at test/changeHandler() ■AS3 package { import flash.display.*; import flash.events.*; import flash.text.*; import fl.events.*; import fl.controls.*; import fl.data.DataProvider; public class test extends MovieClip { var comboData:Array = new Array( {label:"フォント1"}, {label:"MS ゴシック"}, {label:"フォント3"} ); var combobox_cb:ComboBox; var combobox_cb:ComboBox; var format:TextFormat; var text:TextField; public function test() { init(); } private function init():void { combobox_cb = new ComboBox(); combobox_cb.dropdownWidth = 200; combobox_cb.width = 200; combobox_cb.move(150, 50); combobox_cb.dataProvider = new DataProvider(comboData); combobox_cb.prompt = 'フォント2'; format = new TextFormat(); format.font = "MS ゴシック" text = new TextField(); text.defaultTextFormat = format; text.text = 'テキスト'; addChild(combobox_cb); addChild(text); text.addEventListener(MouseEvent.CLICK, changeHandler); } private function changeHandler(e:Event):void { trace(e.currentTarget.getTextFormat().font); combobox_cb.selectedItem.label = e.currentTarget.getTextFormat().font;//ここでエラー } } }

    • ベストアンサー
    • Flash
  • as3でのmc再生について

    as3でご質問です。 現在as3で、ほとんどをmain.asというasファイルに書いて配置など行っております。 モーションなどがあるmcに関しては、ムビークリップを作って、ライブラリに読み込んであるのをリンケージして呼び出しています。 そこで質問です。 var bn01:MovieClip = new fr_bn01(); var bn02:MovieClip = new fr_bn02(); var bn03:MovieClip = new fr_bn03(); addChild(bn01); addChild(bn02); addChild(bn03); //fr_bn01、fr_bn02はflash上で作成した何フレームかあるmcです。 例えば、bn01の最後のフレームまでいったら、bn02が出現して再生、bn02が最後のフレームまでいったらbn03が出現、再生。 とする場合、どのような書き方をすればよろしいでしょうか。 お手数をおかけしますが、ご教授いただけたらと思います。 よろしくお願いします。 環境:CS3、as3.0

    • ベストアンサー
    • Flash
  • ムービークリップ変換について質問です。

    AS3.0でCS5です。 やや略しますがこのような感じでASでダイナミックテキストを表示させています。 package { public class test extends MovieClip { public function test() { var textInput:TextArea = new TextArea(); var textOutput01:TextField = new TextField(); var textOutput02:TextField = new TextField(); var textOutput03:TextField = new TextField(); textOutput01.text = 'あああ'; textOutput02.text = 'いいい'; textOutput03.text = 'ううう'; addChild(textInput); addChild(textOutput01); addChild(textOutput02); addChild(textOutput03); } } } 実現したいことは、 1:ダイナミックテキストをクリックすると文字がテキストエリアに表示 2:ダイナミックテキストの移動(ドラッグ&ドロップ) ステージに配置する場合であれば、 1:ステージにダイナミックテキストを配置 2:ダイナミックテキストをムービークリップに変換 これでいいと思うのですが、ASだけでこのようなことを実現するには どうすればいいのでしょうか? ダイナミックテキストのままでは、クリックもできないのでムービークリップに 変換しなければ無理かと考えております。 ちなみに、テキストエリアに表示された文字を変更すればダイナミックテキストにも 反映されるものにしたいのでダイナミックテキストは外せません^^;

    • ベストアンサー
    • Flash
  • (AS3)「var mc:MovieClip = new MC?();」 の?の部分を変数にできないか

    タイトルの通りです。 今ライブラリには100個のムービークリップがあって、それぞれMC1~MC100までのリンケージ名(クラス名)でActionScriptに書き出しているものとします。 これらを動的に「var mc:MovieClip = new MC?();」というふうにしたいのですが、うまくいきません。 一応下のように自分なりに考えてみたのですがやっぱりダメでした。 var i:int = 3; var str:String = "MC"+i; var mc:MovieClip = new str(); stage.addChild(mc);

    • ベストアンサー
    • Flash
  • 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
  • クリックするたびにテキストを1個ずつ表示させる

    マウスクリックをしてテキストを1個ずつ表示させたいです。 stage.addEventListener(MouseEvent.CLICK, mc); function mc(event:MouseEvent):void{ var text1 : TextField = new TextField(); text1.text = "Hello World"; this.addChild(text1); } を実行すると、クリックするたびテキストが1つずつ増えていきます。 これを前回のを消去して新たに表示というような形で1つずつ表示させることはできないでしょうか?

    • ベストアンサー
    • Flash
  • 外部ASを二つ組み合わせる方法

    flash初心者です。二つのASファイルを組み合わせて作ろうとしているのですが、 外部ASをドキュメントクラスを使用して読み込み複数ある場合、調べた結果importを利用してクラスを定義出来るとの事ですが、定義が重複していますと出てしまいます。 パッケージを二個書こうとしても外部から表示可能な複数の定義は使用出来ませんと出てしまいます。二つのスクリプトを一つに纏めた方がいいのでしょうか? どなたかご教授下さい。 ASは同じディレクトリ上に配置しています。 package { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; public class CardMenu extends Sprite { private var cardList:Array = ["card01", "card02", "card03", "card04", "card05"]; private var _currentCard:MovieClip; public function CardMenu() { for ( var i:int = 0; i < cardList.length; i++ ) { var mc:MovieClip = this[cardList[i]]; mc.X = mc.x0 = mc.x; mc.Y = mc.y0 = mc.y; mc.R = mc.rot = mc.rotation; mc.S = mc.sca = mc.scaleX; mc.dep = getChildIndex(mc); mc.btn.addEventListener(MouseEvent.CLICK, openHandler); mc.addEventListener(Event.ENTER_FRAME, enterFrameHandler); } } private function openHandler( e:MouseEvent ):void { if (Boolean(_currentCard)) { _currentCard.X = _currentCard.x0; _currentCard.Y = _currentCard.y0; _currentCard.R = _currentCard.rot; _currentCard.S = _currentCard.sca; setChildIndex(_currentCard, _currentCard.dep); _currentCard.btn.visible = true; } _currentCard = e.target.parent as MovieClip; _currentCard.X = stage.stageWidth / 2; _currentCard.Y = stage.stageHeight / 2; _currentCard.R = 0; _currentCard.S = 1; setChildIndex(_currentCard, numChildren - 1); _currentCard.btn.visible = false; } private function enterFrameHandler( e:Event ):void { var card:MovieClip = e.target as MovieClip; card.x += ( card.X - card.x ) * 0.2; card.y += ( card.Y - card.y ) * 0.2; card.rotation += ( card.R - card.rotation ) * 0.2; card.scaleX += ( card.S - card.scaleX ) * 0.2; card.scaleY = card.scaleX; } } } package { import flash.display.Sprite; import box; public class box extends Sprite { public function Main() { var box:box = new box(); } } }