0

Flex で画像が表示されない

  <?xml version="1.0"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
        <mx:Script><![CDATA[
            public var photo:FileReference = new FileReference();

            protected function crop_clickHandler():void
            {
                var f:FileFilter = new FileFilter("Image", "*.jpg;*.jpeg;*;*.gif;*.png;");
                photo.addEventListener(Event.SELECT, fileSelected);
                photo.browse([f]);
            }

            private function fileSelected(evt:Event):void
            {
                photo.addEventListener(Event.COMPLETE,loadCompleted);
                photo.load();
            }

            private var loader : Loader = new Loader();

            private function loadCompleted(evt:Event):void
            {
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, getBitmapData);
                loader.loadBytes(photo.data);

            }

            private function getBitmapData(event:Event):void
            {
                var content:DisplayObject = loader.content;
                var BMPData:BitmapData = new BitmapData(content.width,content.height);

                //  var imgObj:Object = new Object();
                var bmd:BitmapData;
                bmd = Bitmap(event.currentTarget.content).bitmapData;
                var bmpMy:Bitmap = new Bitmap(bmd);
                myImage1.source=bmpMy
                // myImage1.addChild(DisplayObject(bmpMy));


            }
            ]]></mx:Script>

ロード後にここに画像を表示しようとしましたが、試したとおりに機能していません

        <mx:Button id="btnLoad" label="Browse Image" click="crop_clickHandler()" ></mx:Button>
        <mx:Image id="myImage1" x="50" y="50" height="100%" width="100%" maintainAspectRatio="false" autoLoad="true" ></mx:Image>

    </mx:Application>
4

1 に答える 1

0

Flash Player 9 (Flex 3.6 のデフォルト) では使用できない FileReference のメソッドにアクセスしています。

必要なのは、Flash Player 10.1 以降をターゲットにすることです。Flex 4 には 11.1 が付属しているため、ここでは 11.1 を対象とする手順を示します。

まず、プロジェクト プロパティの「Flex コンパイラ」でターゲット プレーヤーを更新します。

ここに画像の説明を入力

次に、Flex Build Path に移動し、Flex 3.6a メニューの下から playerglobal.swc を削除します。次に、[SWC を追加] をクリックし、対象のプレーヤー バージョンの playerglobal.swc を選択します (FLEX_SDK/frameworks/libs/player/11.1 を参照)。

ここに画像の説明を入力

その後、Project Clean を実行することを忘れないでください。

これで、コードをそのまま実行できるはずです。

于 2013-09-19T20:50:48.403 に答える