0
import flash.media.CameraRoll;
import flash.display.Loader;
import flash.media.MediaPromise;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.MediaEvent;
import flash.events.Event;

backbtn6.addEventListener(MouseEvent.CLICK, back);

var cameraroll:CameraRoll;
var loader:Loader;
var promise:MediaPromise;
var bitmap:Bitmap;
var bitmapdata:BitmapData;

openpic.addEventListener(MouseEvent.CLICK, selectpic);
function selectpic(e:MouseEvent):void
{
if(CameraRoll.supportsBrowseForImage)
{
    cameraroll = new CameraRoll();
    cameraroll.addEventListener(MediaEvent.SELECT, loadpic);
    cameraroll.browseForImage();
}

}

function loadpic(e:MediaEvent):void
{
promise = e.data as MediaPromise;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, showpic);
loader.loadFilePromise(promise);
}

function showpic(e:Event):void
{
if(bitmap != null)
{
    removeChild(bitmap);
}

var originalWidth:int = Bitmap(e.currentTarget.content).width;
var originalHeight:int = Bitmap(e.currentTarget.content).height;

bitmapdata = new BitmapData(originalWidth,originalHeight);
bitmap = new Bitmap(bitmapdata);
bitmap.bitmapData = Bitmap(e.currentTarget.content).bitmapData;

bitmap.x = 0;
bitmap.y = 0;

addChild(bitmap);
}

AIRを使用したAndroid用のas3コードです。私は他の人々のコードを見てこのコードを書き留めました。しかし、私のAndroidフォンでは機能しません。私のコードのメーターは何ですか...助けてください..どうすればいいですか??

何か解決策があれば、開発していただければ幸いです。私は as3 を勉強してちょうど 1 か月です

4

1 に答える 1

0

あなたの質問にいくつかの詳細が記載されているため、これは権限の問題であり、コードは問題ないと思います。この権限を追加してみてください:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

your_appはアプリケーションの名前 ( project ) で、このようにする前に、 youryour_app-app.xmlに直接追加できます。</application>

<application xmlns="http://ns.adobe.com/air/application/15.0">

    <!-- ... -->

    <android>
        <manifestAdditions>
            <![CDATA[<manifest>
                <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
            </manifest>]]>
        </manifestAdditions>
    </android>
</application>

もちろん、XML の他のコンテンツには触れないでください。その部分を追加 (または既に存在する場合は編集) するだけ<android>...</android>です。

または、単純に AIR xxx for Android 設定ダイアログを使用します。AIRxxxのバージョンは、[ファイル] メニューからアクセスできます。[アクセス許可] タブに移動し、次のようにアクセス許可を選択しますWRITE_EXTERNAL_STORAGE(もちろん、これは Flash 用です)。

ここに画像の説明を入力

それでも常に何も得られない場合はErrorEvent、オブジェクトにイベント リスナーを追加して、CameraRollエラーをキャッチしてみてください。

cameraroll.addEventListener(
    ErrorEvent.ERROR, 
    function(e:ErrorEvent):void { 
        log.text = e.text;
    }
)

それが役立つことを願っています。

于 2015-01-18T19:16:39.410 に答える