1

背景

Flex4.5およびAIR2.6で構築されたAIRアプリをFlex4.6およびAIR3.3に更新中です。これは、ネイティブJSONクラスを利用し、AIR3.4とActionscriptワーカーの準備をするために行っています。どちらも使用する予定です。PureMVC2.0.4も使用しています。

実際の更新プロセスはうまくいきました。Flex 4.6 SDKをダウンロードし、その上にAIR3.3SDKをオーバーレイしました。ここまでは順調ですね。as3corelibでJSONクラスを使用していたため、アプリからそのクラスへの参照を削除して、いくつかの変更を加える必要がありました。そのスムーズな航海は別として。コードがうまくコンパイルされたので、アプリの起動に進みました。

問題

これは物事がバラバラになるところです。

アプリが「ウェルカム」ビューを起動すると(これは基本的に、「ファイルを開く」、「新しいファイル」などのボタンと、Webサービスから取得したニュースフィードなどのボタンがあるランディングです)が表示されません。背景画像は表示されますが、UIが表示されません。スクリーンキャップの例を次に示します。

以前(ウェルカムビューの動作中の4.5バージョン) 動作中、Flex4.5バージョンのウェルカムビュー

後(ウェルカムビューの壊れた4.6バージョン。これはビューの背景画像です。) ここに画像の説明を入力してください

Flash Builderデバッガーで大量のブレークポイントを使用して起動プロセスをステップ実行しても、明らかに問題があることはわかりません。他のUI要素もありません。例:このタブバーにはボタンがありません

以前(動作中の4.5バージョン) 動作中、Flex4.5バージョンのTabBar

後(壊れた4.6バージョン) 壊れた、Flex4.6バージョンのTabBar

ここで何が起こっているのかを確認するために、私はできる限りアプリで遊んでいます(ウェルカムUIがなくなったため、これはかなり難しいです)。アプリケーションを最小化してから復元すると、アプリがハングすることがわかりました。 Windowsがアプリのタイトルバーに「(応答なし)」ビットを追加するところまで、UIはちょっと-ちょっと-ほとんど機能して正常に再開します。いくつかのサンプル画像:

復元後のウェルカムビュー(右に大きく離れている水平方向のルールに注意してください) 復元後のウェルカムビュー

復元後のTabBar(このコンテンツはレイアウトルールを完全に無視しています。さらに、実際には左にスクロールしています-そうです、どういうわけか脚が伸びて、それ自体で画面から移動しているだけです。トゥイーン/アニメーションコードが添付されていませんでしたこのビュー) 復元後のTabBar、位置がずれたコンテンツ

これはすべて、FlashBuilder4.6を搭載したWindows7x64で発生しています。

質問

ここで一体何が起こっているのですか?なぜ私のUIはこのように消えてしまうのでしょうか?

「ああ、このコンパイラオプションを追加するだけ」やBAMのような基本的なものが欠けているような気がします。物事は修正されます。私は確かに、このアップグレードで私のアプリが完全に壊れるべきだとは感じていません。

以前のバージョンのFlex/AIRからFlex4.6/ AIR 3.xにアップグレードする際に、同様の問題が発生したことはありますか?問題をどのように解決しましたか?

この問題を引き起こしているのは私のカスタムスキンでしょうか?なぜそれが起こるのでしょうか?スキンのトピックでは、これは同様の質問のようです。

アップデート

私はこれを避けたいと思っていましたが、これでは実際にはどこにも到達していなかったので、アプリを適切なレベルの機能に戻し、そこから作業できるようになるまで、テーマと外部SWCを引き出し始めることにしました。私はテーマから始めましたが、問題はテーマにありませんでしたが、正しい方向に向けられました。

私のアプリには、というクラスがありHRuleます。これは、上記のスクリーンショットの一部にある[ディーラーから開く]ボタンと[ログアウト]ボタンの間の水平方向のルールです。Groupこのクラスは、ルールを描画する2つLineのsが内部にある単純なSparkです。

完全なクラスは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<s:Group 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->

    </fx:Declarations>

    <s:layout>
        <s:VerticalLayout
            gap="0">
        </s:VerticalLayout>
    </s:layout>

    <s:Line
        xTo="{width}">
        <s:stroke>
            <s:SolidColorStroke
                color="#000000"
                alpha="0.4" />
        </s:stroke>
    </s:Line>

    <s:Line
        xTo="{width}">
        <s:stroke>
            <s:SolidColorStroke
                color="#ffffff"
                alpha="0.15" />
        </s:stroke>
    </s:Line>


</s:Group>

次に、このクラスを次のように使用します。

<s:VGroup
    width="300">

    <s:Button 
        label="Button 1"
        percenthWidth="100"/>

    <mycomps:HRule 
        percenthWidth="100"/>

    <s:Button 
        label="Button 2"
        percenthWidth="100"/>

</s:VGroup>

Group基本クラスをからに変更するだけで、すべての問題を修正できますSkinnableContainerWinMergeをダウンロードして、Sparkの4.5バージョンGroupと4.6バージョンで差分を取りましたが、ファイルは同じです。

それで、これは新しい質問を提起します:なぜ4.5と4.6の間で変化の振る舞いをするのでしょうか?Group

4

0 に答える 0