問題タブ [tombstoning]
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.
silverlight - Windows phone 7 シルバーライト トゥームストーン
ユーザーが戻るボタンを押したときにアプリケーションを終了する必要があるという要件を読みました。(5.4.2): 「アプリケーションの最初の画面から [戻る] ボタンを押すと、アプリケーションを終了する必要があります」。
そのため、Silverlight での終了は利用できないことを多くのサイトで読みましたが、アプリケーションは非アクティブ化する必要があることを意味していると思います (たとえば、「windows フラグ」のボタンを押すと非アクティブ化されます)。アプリケーションにメインメニューがあります。別のページに移動してメイン メニューに戻った場合、前のページはアプリケーション内の別のページであるため、「戻るボタン」を押してもアプリケーションは非アクティブになりません。では、「ナビゲーション履歴」を消去する必要があるのではないでしょうか? しかし、それは不可能です。どこかで読んだことがあります...この場合はどうすればよいですか?
windows-phone-7 - wp7 Silverlightキャンバスは、トゥームストーン後に黒い画面を表示します
wp7アプリに、グラフを表示するために使用されるキャンバスのみの画面があります。
ページ読み込みイベントを処理してグラフを描画します。グラフの子に線を追加することで、線はApp.xaml.csのリスト変数に格納されます。
編集:これが私の描画線機能です
私は設定で行を保存/ロードすることによって墓石を処理します。
ページロードメソッドにブレークポイントを設定しました。トゥームストーン後に線が正しく復元され、グラフキャンバスの子に線が追加されましたが、キャンバスに黒い画面が表示されます。
これを解決するにはどうすればよいですか?
silverlight - [スタート] ボタンと [戻る] ボタンを押した後、WP7 アプリが読み込まれない
アプリケーションに問題があり、たとえば、テキストを受信して読んだ後にアプリケーションを再開します。
現在、ロックされた画面で問題なく動作しますが、スタートボタンを押して何かをしてから、戻るを押してアプリを再開すると、再開メッセージが数秒間表示され、消えてから、黒い画面が15秒以上残り、アプリは再表示されません。
これはページの読み込み時間に関係している可能性がありますが、起動時のアプリケーションには読み込み時間の問題はありません。App.xaml.cs のアクティブ化/非アクティブ化セクションにコードを実装していないため、影響はありません。
ここで何がうまくいかないのか知っている人はいますか?どんな助けでも大歓迎です。
ちょっとした更新: テスト後、ウィンドウと [戻る] ボタンをすばやく連続して押すと機能します。しかし、プロセスが終了するまで時間を空けると、真っ暗になります。サンプル アプリで同じテストを試したところ、app.xaml.cs にコードを追加しなくても再開されました。
windows-phone-7 - 詳細ページへの移動 - 共有ビュー モデルまたはナビゲーション クエリ文字列?
リスト ページから詳細ページに移動する場合、ページ間で選択データを渡すには、ビュー モデル インスタンスを共有する方法と、ナビゲーション Uri のクエリ文字列で識別子を渡す方法の 2 つの高レベルの方法があります。
どちらを使用する必要がありますか? あるアプローチを他のアプローチよりも使用することに問題はありますか (ビュー モデルからの現在の Uri へのアクセス、ナビゲーション イベントのタイミングなど)。
serialization - XNA - WP7 - TiledLib - シリアル化と廃棄
私は現在、Windows Phone 7 用の XNA Game Studio 4.0 フレームワークを使用して 2D ゲームを作成しています。ユーザーが保存/読み込みを希望する場合、または再開する場合に、ゲームを廃棄するという問題に取り組んでいる段階になりました。後の時点でゲーム。
私は現在、マップのレンダリングなどにTiledLibライブラリを使用しており、プロジェクトの基礎として画面状態管理の例も使用しています (たとえば、正しく廃棄するためのイベントはすべて整っています)。Map
TiledLib ライブラリのオブジェクトには、多次元配列 ( [,]
) があり、各 内にマップのタイルを格納しますTileLayer
。私のマップには が 1 つしかなく、タイルが表示しているものに基づいてソースの場所が異なるTileLayer
1 つだけです。各タイルの適切なソース四角形をすべて追跡することが重要です。これにより、編集されたマップがプレーヤーが残した方法で再開できるようになります。Texture2D
Rectangle
ゲーム画面のトゥームストーンを実現するための最良の方法 (または任意の方法) を見つけようとして、かなり苦労しています。私はシリアライゼーションの経験があまりなく、Windows Phone 7 アプリケーションの廃棄を試みるのはこれが初めてです。通常の XmlSerializer を使用して非ジャグ配列をシリアル化できないことは理解していますが、これを回避する方法はありますか? カスタムシリアライザーはダウンするための良い道ですか? 長所短所?TileLib を使用してゲーム画面をシリアル化した経験のある人はいますか? または、X、Y 座標を持つ 2D マップですか? 廃棄のためにシリアル化するには多すぎるデータはどれくらいですか?
回答とアドバイスをお寄せいただきありがとうございます。
windows-phone-7 - トゥームストーンの後に LongListSelector のスクロール位置を復元する
WP7 Silverlight Toolkit の LongListSelector コントロールを操作しようとしています。少し手間がかかりましたが、ようやくアプリで動作するようになりました。残念ながら、廃棄プロセスを適切に処理するのに問題があります。
アプリケーションが廃棄されたとき (またはユーザーがリスト内の項目を選択して別のページに移動したとき)、リストの一番上に表示されている項目のコピーを保存します。クラス変数とアプリ状態コレクションの両方に保存します。
次に、ユーザーがページに戻ったときに、2 つの値 (状態または変数) のいずれかを確認し、それを使用して最後のスクロール位置を復元します。
アプリケーションが廃棄されない限り、これはうまく機能します。その場合、エラーは発生しませんが、リストに触れてドラッグするまで、リストは完全に空白です。これを行うと、リストの一番上に再表示されます。コントロールのソースを調べたところ、.ScrollTo(object) を呼び出しても一致しないことがわかりました。さらに調査した結果、スクロール先のアイテムを検索する際に、Equals の代わりに == を使用して比較していることが判明しました。私は Equals を上書きしただけで、明らかにデフォルトの == は (設計上) 参照を比較します。廃棄後に State アイテムを復元すると、参照が一致しません。== を上書きすることはできますが、それは間違っているように感じます。代わりに equals を呼び出すようにコントロール ソースを変更して再構築することはできますが (試してみたところ、うまくいきました)、それは私よりもずっと賢い人によって書かれたものであり、私はそれを理解できないのではないかと思っています。
windows-phone-7 - スタート メニュー、カメラ ボタンが WP7 アプリケーションを廃棄しないようにする
次のような電話のアイドル機能を無効にしたWP7アプリケーションがあります。
ただし、カメラ ボタンとスタート メニューは引き続きアプリケーションを一時停止し、後で再開します。これらのボタンが押されてもアプリを実行したい。これらのボタンがアプリを廃棄しないようにするにはどうすればよいですか?
windows-phone-7 - WP7:アプリがバックグラウンドである間にスクリーンショットを編集する(Mango)
機密性の高いユーザーデータを表示できる、開発中のアプリがあります。
ユーザーがアプリをバックグラウンドで実行すると、OSは実行中のアプリのスクリーンショットを撮ったように見え、ユーザーが戻ったときに状態が復元されるように表示します。
このスクリーンショットにユーザーの情報が表示されないようにしています。
私の最初のアイデアは、スプラッシュ画面の画像のポップアップを表示することでしたが、ApplicationDeactivateではレンダリングされないようです。これを達成する他の方法はありますか?
windows-phone-7 - Caliburn.Micro1.1でのカスタムシリアル化
1.0WP7アプリケーションをCM1.1にアップグレードしています。とりわけ、古い属性ベースのトゥームストーニングを削除し、ストレージクラスを実装しています。
これには通常、ストレージの目的でVMごとにクラスを作成し、そこから派生させStorageHandler<T>
(TはVMのタイプ)、次のConfigure
ようにそのメソッドをオーバーライドすることが含まれます。
このコンテキストでは、自動的にシリアル化できなかったオブジェクトに対して独自のシリアル化/逆シリアル化コードを使用して、カスタムシリアル化メカニズムを実装するにはどうすればよいですか?たとえば、VMの1つにStrokeCollection
プロパティがあり、その中のストロークをシリアル化したいのですが、この目的のために、セキュリティ例外を発生させるデフォルトのメカニズムを置き換える必要があります。
誰かが偽のCMWP7サンプルを見せて、プロパティのシリアル化をカスタマイズする方法を説明して、シリアル化/逆シリアル化するための独自のコードを配置できるようにすることはできますか?ありがとう!
windows-phone-7 - WP7 の廃棄に関する問題、新しいデータを復元またはインスタンス化/クエリする必要があるかどうかわかりません
WP7 で悪名高いトゥームストーンの問題/問題に遭遇しました。FirstPage.xaml、SecondPage.xaml、ThirdPage.xaml の 3 つのページがあるとします。自然の流れは次のようになります。
FirstPage.xaml -> SecondPage.xaml -> ThirdPage.xaml
言い換えると、
メインページ -> オブジェクトのリストがあるページ -> 前のページから 1 つのオブジェクトを詳細に表示するページ
FirstPage.xaml から SecondPage.xaml に移動すると、データベース クエリを実行して SecondPage.xaml のリストを取得する必要があります。次に、SecondPage.xaml から ThirdPage.xaml に移動する必要があります (リストから MyObject を 1 つ選択した後)。この時点で、トゥームストーンは私にとって非常にややこしいものになりつつあります。
FirstPage.xaml -> SecondPage.xaml に行くと、SecondPage.xaml.cs のコンストラクターが呼び出されます。私は、ThirdPage.xaml -> SecondPage.xaml (戻るボタンまたは NavigationService.GoBack() を押して戻る) に行くときに、SecondPage.xaml.cs のコンストラクターが呼び出されないことを知っています。SecondPage.xaml から ThirdPage.xaml に移動するとき、View-Model (VM) オブジェクトを PhoneApplicationService.Current.State (SecondPage.xaml.cs.OnPageNavigatedFrom()) に格納します。
私の(欠陥のある)戦略は、SecondPage.xaml.csのコンストラクターが1つのインスタンス(FirstPage.xaml -> SecondPage.xaml)で呼び出され、他のインスタンス(ThirdPage.xaml -> SecondPage.xaml)では呼び出されない場合でした。 、その後、新しい DB クエリを実行するか、ページの状態を (PhoneApplication.Current.State から) 復元するかどうか、コンストラクターでブール値のフラグを設定できます。ブール フラグは最初に false に設定され、SecondPage.xaml.cs のコンストラクターでのみ true に設定されます。
これでうまくいくと思ったのですが、スタート ボタンを押してアプリを終了し、戻るボタンを押してアプリに戻ると、SecondPage.xaml.cs のコンストラクターが呼び出されました。そのため、意図した動作ではない状態を復元する代わりに、別の新しい DB クエリを実行します。
私の質問はこれです。ユーザーが開始を押してアプリに戻るときに、新しい DB クエリと復元をいつ実行するかをどのように知ることができますか? 私はこれを自分で解決する方法を考えましたが、私が考えたもののほとんどはクラッジでした。それは不自然に見え、物事を機能させるためにいじくり回しているように見えました. たとえば、FirstPage.xaml から SecondPage.xaml (つまり、/SecondPage.xaml?freshDbQuery=1) にクエリ文字列を渡すことができると思っていましたが、ThirdPage.xaml から SecondPage.xaml に戻ると、そのクエリ文字列のキー値ペア、freshDbQuery=1 は常にそうです! (お分かりのように、私は wp7 をよく知りません)。
どんな助けでも大歓迎です。