問題タブ [parsley]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - SequenceWaiter がイベントを認識しない
このAsyncHelperを使用しています。テスト メソッドから (Parsley MessageDispatcher によって) イベントをディスパッチし、他のメソッドでこのイベントをキャッチして (flex EventDispatcher によって) ディスパッチする基本的なテスト ケースを作成したいと思います。
これは私のテストケースです:
package flexUnitTests {
import flash.events.ErrorEvent;
import flash.events.Event;
import flash.events.EventDispatcher;
}
そして、私のイベントは次のようになります。
package flexUnitTests.events
{
import flash.events.Event;
}
どこが問題なのかわからない。コードでトレースを作成すると、Parsley がイベントを passItOn メソッドにディスパッチすることがわかります。そして、EventDispatcher ディスパッチ イベントを元に戻します。しかし、SequenceWaiter がイベントを認識しない理由がわかりません。
apache-flex - 2つのポップアップを表示するパセリのポップアップ
別のポップアップを作成できるパセリのポップアップがあります。
問題は、ルート ポップアップを閉じたときに発生し、ポップアップを再度開いて子ポップアップをクリックすると、実際には 2 つの子ポップアップが開いています。
なぜこのことが起こるのか分かりますか?
ルートと子の両方のポップアップに対して、すでに reuse='false' と modal = 'true' を作成しています。
根
子( ScenarioView )
apache-flex - FlexCairngorm3プレゼンテーションモデルの初期化
わかりました。開いたTitleWindowがあります...そして6つの状態が定義されています。すべてのビューにプレゼンテーションモデルパターンを使用しています。イライラするニュアンスを発見しました。ウィンドウにXXX状態に移行するように指示すると、flexの状態は遅延読み込みを使用するため、コントロールを初期化する必要があります。だから...myTextArea.textが爆破して「アクセスできません...」と言う私のPMコードは、回避策として、コントロールにいくつかのcreationCompleteイベントを作成して、コントロールをPMに登録しました。したがって、状態が変化すると、textareaは最終的に初期化され、creationCompleteでPM.registerTextArea()を呼び出して、それへの参照を設定します。次に、その関数でコードを実行します...myTextArea.text..など。
これは私がそれを嫌うような醜いハックのようです。状態全体が作成されるまで待ってから、PMのコードを呼び出す方法はありますか?私はenterstateを試しました...しかし、このイベントは状態制御の準備ができる前に発生するようです。
コメントを追加しようとしましたが、これを行うには編集が唯一の方法だと思います...
皆様へ:素晴らしいフィードバックに感謝します。私はまっすぐなPMから少し外れたことをしています。すべてのビューにはviewControllerがあります(私がそれらを呼んでいます)。デリゲート/データプロバイダーの私自身のハイブリッドです。しかし、これは議論の余地があります。痛みである状態を処理するとき、それはフレックスコンポーネントのライフサイクルです。状態を変更した場合..「この状態のすべてのコンポーネントの準備ができました」というイベントはありません。「状態を変えた」と言う唯一のイベント。そのため、状態の変化で起動する私のコードは、まだ準備ができていないコンポーネントと通信しようとしています。したがって、私が見たところ、状態内のすべてのコンポーネントでcreationCompleteを使用して登録する準備ができていない限り、すべてのコンポーネントが状態内で作成されることを保証するデザインパターンや完璧な方法はないようです...そうでない場合は、競合状態になります。フレームワークやデザインパターンに関係なく、
textareaは簡単なPM修正です。pm値にバインドするだけです。しかし、私ができない時もあります。
具体的には、その状態になったら、ビデオをディスプレイに添付しようとしています。これは、addchildを介して行われます。どこで行うかに関係なく、addchildを呼び出す前に、videoDisplayの読み込みが完了していることを知っておく必要があります。ドキュメントには最後に起動すると書かれているので、currentStateChangeイベントを試しましたが、残念ながら、状態のコンポーネントはまだ初期化中です。したがって、creationCompleteが私の唯一のオプションのようです。たぶん、コードをクリーンに保つ唯一の正しい方法は、状態に入ったときと同じように使用して全体(ビデオディスプレイとビデオ)を作成することです。私は、フレックスフレームワークに、すべてをその場で構築するのではなく、ここで私を驚かせるイベントがあることを望んでいました。
apache-flex - ビジュアル コンポーネントのインジェクション モデル
私はパセリフレームワークを使用しています。カスタム ビジュアル Tree コンポーネントにモデルを挿入しようとしています。
ビルド構成:
次に、mxml でこのツリーを使用しました。
親関数をオーバーライドしようとしましたが、エラーが発生しました。(モデルはヌル);
override protected function dragDropHandler(event:DragEvent):void
{
model.action = "drop"
}
モデルセッターにブレークポイントを設定しましたが、実行されましたが、モデルはまだnullです。
問題はどこだ?
actionscript-3 - as3でパセリフレームワークを使用して辞書を挿入するにはどうすればよいですか?
私のパセリ コンテナーでは、ディクショナリ (flash.utils.Dictionary) を含むオブジェクト「A」をインスタンス化しています。
パセリを使用してこの辞書を作成し、「A」に注入したいと思います。このディクショナリ ペア構造は次のとおりです: key=オブジェクト 'B' の ID、値='B' ここで、オブジェクト 'B' は、parsley を使用して定義および作成されたオブジェクトでもあります (つまり、基本的にペア構造は、オブジェクト ID をキーとして、オブジェクト自体を値として)。
今、私は「A」と「B」を作成するのに問題はありませんが、パセリを使用してこの辞書を作成したり、「A」に注入したりする正しい方法を見つけることができないようです。
どんな助けでも大歓迎です!
前もってありがとう、ヨゲフ
apache-flex - Parsley 2.4 でのコマンド チェーンの例を探す
理解を助けるために、Parsley でのコマンド チェーンの例を探しています。コマンド チェーンとは、あるコマンドが結果を返し、その結果がすぐに別のコマンドの開始に使用されることを意味します。パセリのフォーラムが 2 日間ダウンしているため、ここでこの質問をします。
apache-flex - フレックスとパセリのロギング
Flex 4.5 プロジェクトでメッセージをログに記録する可能性を探しています。これは、remoteClasses、errorHandler、または手で入力するメッセージのエラーメッセージをカバーする必要があります。多くのウェブページを読んだ後、パセリからの解決策は良さそうです。とにかくこのフレームワークに切り替えたいです。
利点は、実行時にログの動作を構成できることです。しかし、私はドキュメントを理解していません。おそらく、私はパセリに慣れていないからです。また、グーグルにはフィッティング結果がありません。
すでにこれを行っていますか?いくつかのコード スニペットを教えていただけますか。どうもありがとう
フランク
編集:J_A_Xの正当な批判のため、部分的に成功したため、コードを追加します。
実行時にログの動作を構成したいので、最初に構成ファイルが必要です。これは、プロジェクト ルートにある単純な xml ファイルです。
これは私のアプリケーションです:
この時点で、パセリはデフォルトで TraceTarget を使用するため、ロギングは flex ビルダーのコンソールで機能します。今、ログファイルをソケットに送信したいと思います。少しラフな SocketTarget を書きました。
パセリのドキュメントでコメントを見ることができます
このタグによって作成されるデフォルトのターゲット タイプは TraceTarget です。他のターゲット タイプを明示的に宣言できます。
タイプ属性を追加すると、「BootstrapProcessor で 1 つ以上のエラーが発生しました」というエラー メッセージが表示されます。タイプミスの後に受け取ったものと同じです。
ログをソケット宛先に送信する方法を教えてください。
apache-flex - プレゼンテーション モデル パターンを使用した Flex 4 での Parsley 依存性注入の問題
次のように、View クラス EmployeeList があります。
PM は次のようになります。
インジェクションを実行するために使用するかオートワイヤリングを使用するかに関係なく、これを実行すると次のエラー メッセージが表示されます。
TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。cafeparsley.view::EmployeeList/_EmployeeList_List1_i() [C:\dev\code\workspace\Examples\CafeParsley\src\cafeparsley\view\EmployeeList.mxml:29] で cafeparsley.view::EmployeeList/_EmployeeList_Array2_c() で mx .core::DeferredInstanceFromFunction/getInstance()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\DeferredInstanceFromFunction.as:105] spark.components::SkinnableContainer/createDeferredContent()[E :\dev\4.x\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:985] spark.components::SkinnableContainer/createContentIfNeeded()[E:\dev\4.x\frameworks\projects で\spark\src\spark\components\SkinnableContainer.as:1014] at spark.components::SkinnableContainer/createChildren()[E:\dev\4.
そのため、エラーがスローされた場合、employeeListPM は null です。ただし、コンポーネントをコメントアウトし
<s:List>
、再実行して init メソッドにブレークポイントを設定すると、init() が呼び出されます。したがって、コンテキスト構成が間違っているわけではありません。PM が時間内に注入されておらず、エラーがスローされているだけです。しかし、パセリのマニュアルによると、自動配線を使用するか<parsley:configure/>
、PM が必要になるまでに注入する必要があります。
比較的些細な依存性注入シナリオだと思っていたもので、何が間違っているのかわかりません。手伝ってくれますか?
actionscript-3 - Flex - ArgumentError: エラー #2025: 追加された swc ファイルを使用する場合、指定された DisplayObject は呼び出し元の子でなければなりません
このエラー #2025 のトピックについて、ここで非常に多くの質問が寄せられていることは既に承知しています。
しかし、私の場合、.swc
フレックスプロジェクトでファイルを使用しようとすると発生します。
Add swc
using " " ファイルを追加して、ライブラリ プロジェクトの 1 つを別のフレックス プロジェクトに使用しようとしています。新しいプロジェクトに.swc
ファイルとして正常に追加しました。
しかし、ブラウザでアプリケーションをクリックして新しいプロジェクトを使用しようとすると、このランタイムエラーが表示されます。以下は私の新しいプロジェクトのメインファイルです。
NewSample.mxml
スタックトレース:
ArgumentError: エラー #2025: 指定された DisplayObject は呼び出し元の子でなければなりません。flash.display::DisplayObjectContainer/getChildIndex() で mx.managers::SystemManager/getChildIndex()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:1772] mx.managers::SystemManager/mouseDownHandler()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:3615] で
エラーの原因を特定できませんか?
EDIT :これは、.swc
ライブラリ ファイルのメイン アプリケーション ファイルです。
メイン.mxml