日々学んだことを残しておこう。きっと未来の自分が探しにくる。 (ただ忘れっぽいだけです…)

Flex Chromeでデバッグできない


昔作成したFlexのプログラムを修正しないといけなくて、デバッグしようとしたら動かない。。。

PCを変更したから一瞬、どこが原因かわからなかった。

結局、調べた結果、デバッグ用のブラウザをクロームからFirefoxに変えたら問題無かった。

(参考サイト)
FxUGフォーラム どうしてもデバッガーに接続できない

Chromeでもデバッグする方法はあるそうだけど、通常使っているブラウザがクロームなだけで特にこだわりはないので、Firefoxでデバッグで対処。

ちなみにブラウザの変更方法はこちら。

(参考サイト)
Flash Builder ブラウザ変更
2014-02-12 : Flex : コメント : 0 : トラックバック : 0
Pagetop

Flex Imageコンポーネント SparkとmxのlocalXの違い


Flexには、画像扱うコンポーネントとして、SparkのImageコンポーネントとmxのImageコンポーネントがありますが、あまり違いを意識せずに使っていて、ハマったところがあったのでメモしておきます。

画像上のマウスホイールのイベントを取得し、マウス位置を取得しようとしていて、localXとlocalYプロパティで画像上のX,Y座標を取得しようとしました。

その画像はオリジナルのサイズが200px×200pxで、widthとheightをセットする際に100px×100pxにしたものとします。
通常、画像の左上あたりにマウスイベント発生させる、e.localXもe.localYも0になります。
右下あたりにマウスイベント発生させると画像のサイズになるはずですが、そのサイズの概念が違うようです。

簡単にいうと、sparkのImageコンポーネントで作成した場合、セットしたimage.widthとimage.heightになるのに対して、mxのImageコンポーネントで作成した場合、オリジナルサイズのimage.content.widthとimage.content.heightになるという違いがありました。

最初、ソースは同じでImageコンポーネントだけ変更したら挙動がおかしくなって、かなり探した結果この部分が異なっていました。
ということで、再度ミスしないようにメモしておきます。

private function onMouseWheel(e:MouseEvent):void {

var templocalX:Number;
var templocalY:Number;

//sparkコンポーネントの場合
templocalX = e.localX; //100 画像の右下あたりでイベント発生させた場合
templocalY = e.localY; //100 画像の右下あたりでイベント発生させた場合

//mxコンポーネントの場合
templocalX = e.localX; //200 画像の右下あたりでイベント発生させた場合
templocalY = e.localY; //200 画像の右下あたりでイベント発生させた場合
}


(参考サイト)
Flex 座標の使用
2012-12-11 : Flex : コメント : 0 : トラックバック : 0
Pagetop

Flex エラー Argument count mismatch


すごく、単純なミスメモしておきます。

FlexでaddEventListenerでクリックイベント追加して、クリック時のメソッド書いて、実行したらこんなエラーが発生。

Argument count mismatch

ちなみにコード抜粋するとこんな感じ

■(例)myimageにclickイベントにmyMethodメソッドをセット
myimage.addEventListener(MouseEvent.CLICK,myMethod);


■呼ばれるメソッド(NG)
private function myMethod():void{
Alert.show("だー");
}

で、どうすれば良いか。
引数にevent:MouseEventを追加すればOKらしい。
特に呼び出し側には、引数セットしなくて良いんだね。ちょっと違和感。

結局以下のようにすればエラーなくなりました。

■呼ばれるメソッド(OK)
private function myMethod(event:MouseEvent):void{
Alert.show("だー");
}


忘れないようにメモ。
2012-12-06 : Flex : コメント : 0 : トラックバック : 0
Pagetop

Flex 印刷機能 FlexPrintJob 


Flexで作成しているWebアプリケーションの画面の一部を印刷したいという要望が。

プリントスクリーンでいーんじゃないかと思ったが、どうしても印刷機能が必要とのこと。

早速探してみると、FlexPrintJobクラスを使えば結構簡単にできそうだ。

こちらに詳しい説明があったのでお勉強。
[Flex2][AS3]Flex2で帳票作成

例えば、あるパネル(idがpanel_xxx)出力した場合、これだけでOK。
import mx.printing.FlexPrintJob;

var printJob:FlexPrintJob = new FlexPrintJob();
printJob.start();
printJob.addObject(panel_xxx);
printJob.send();


(参考サイト)
FlexPrintJob クラスの使用

レイアウトとかこったりすると大変かもだけど、細かい微調整なしに印刷するレベルなら簡単にできるんですね。



20130124追記↓---------
と、問題なく印刷できていたのですが、印刷ウィザードで[キャンセル]すると、panelが消えてしまう現象が。。。

ヘルプを良く見る。

--ヘルプ抜粋---
印刷ダイアログボックスでユーザーがプリントを開始するオプションを選択すると、 start() メソッドは true の値を返します。ユーザーがプリントジョブをキャンセルすると、戻り値は false になります。ユーザーがオペレーティングシステムの印刷ダイアログボックスを閉じると、start() メソッドはプリンタ情報を使用して FlexPrintJob オブジェクトの pageHeight および pageWidth プロパティの値を設定します。これらのプロパティは、プリントするページ領域のサイズを表します。
--------------

とのこと。
キャンセルの場合、printJob.startにfalseが帰ってくるので、if文で分岐。
そしたら大丈夫でした。

import mx.printing.FlexPrintJob;

var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start()) {
printJob.addObject(panel_xxx, FlexPrintJobScaleType.MATCH_WIDTH);
printJob.send();
}
2012-11-29 : Flex : コメント : 0 : トラックバック : 0
Pagetop

Flex MXMLファイル名 命名規約


Flexでmxmlファイル名付けるときに、ちょっと気になったの調べてみた。

MXML ファイルの命名規約


・ファイル名は有効な ActionScript 識別子であることが必要
・ファイル名は必ず英字または下線文字(_)で始まり、英数字と下線文字だけで構成
・ファイル名は、ActionScript クラス名、コンポーネント id 値、または「application」という単語と同じにしない
・mx 名前空間に含まれる MXML タグの名前と一致するファイル名を使用しない
・ファイル名は、小文字の拡張子 .mxml で終了する

(参考サイト)
MXML ファイルの命名
2012-10-11 : Flex : コメント : 0 : トラックバック : 0
Pagetop
ホーム  次のページ »

広告

読みたいと思っている書籍

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく Amazon Web Services 定番業務システム12パターン 設計ガイド イラストで学ぶ 機械学習 最小二乗法による識別モデル学習を中心に (KS情報科学専門書) イラストで学ぶ ディープラーニング (KS情報科学専門書)

カウンタ

メールフォーム

名前:
メール:
件名:
本文:

GoogleTranslate

管理人のつぶやき

人気記事ランキング

カテゴリ

openclose

ブログ内検索

全記事表示リンク

全ての記事を表示する

ブログパーツ