2014-09-04 2 views
0

Я пытаюсь сохранить изображение на камеру своего телефона Roll с помощью Action Script 3. Изображение хорошо сохраняет на планшетных устройствах. Однако, когда я сохраняю изображение на своем телефоне, он сохраняет только верхний левый угол изображения.Телефон сохраняет только левый верхний угол изображения - ActionScript3

Вот мой код,

var media:DisplayItem; 

public function SaveAsBitmap():void 
{ 
var cameraRoll:CameraRoll = new CameraRoll(); 
cameraRoll.addBitmapData(this.GetAsBitmapData()); 
} 

public function GetAsBitmapData():BitmapData 
{ 
var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000); 
this.media.DrawToBitmap(bmpData);  
return bmpData;  
} 

Как сохранить изображение, которое больше, чем область отображения моего телефона? Любая помощь приветствуется.

ответ

0

В этой строке:

var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000); 

Проверьте значение этих переменных: «this.width» и «this.height», вероятно, это не правильные размеры, как вы хотите.

Чтобы проверить разрешение экрана пользователя, вы можете попробовать:

// remember to import 
    import flash.system.Capabilities; 

    trace('Capabilities.screenResolutionX: ', Capabilities.screenResolutionX); 
    trace('Capabilities.screenResolutionY: ', Capabilities.screenResolutionY); 

Я также видел, что-то на своем коде, я не могу видеть все сферы, но попытаться сделать что-то:

public function GetAsBitmapData():BitmapData 
    { 
    // you can replace this.width and this.height to Capabilities.screenResolutionX/Capabilities.screenResolutionY 
    var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000); 
    bmpData.draw(this.media); // be sure that this.media is IBitmapDrawable 
    return bmpData;  
    } 
+0

Спасибо @gPeart. Я подключен к Iphone5, а ширина и высота, которые я получаю, - 320 и 480. Я новичок в кодировании в Action Script, и я не совсем уверен, как найти размер сцены подключенного устройства. – Sugan88

+0

Добро пожаловать! Я только что отредактировал свой ответ, чтобы помочь вам найти разрешение устройства. – gabriel

+0

Большое спасибо @gPeart. Я попытался заменить this.width & this.height на Capabilities.screenResolutionX и Capabilities.screenResolutionY. Но он по-прежнему не работает должным образом. Кроме того, this.media - это displayItem, и я не могу преобразовать его в IBitmapDrawable. – Sugan88

0

As другой плакат заявил, что проблема заключается в следующей строке:

var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000); 

this.width и this.height возвращают вам «размер» экрана устройства. То, что вам нужно положить вместо этих элементов, - это фактическая ширина и высота изображения, которое вы хотите загрузить из рулона камеры.