2015-05-04 7 views
0

Я как бы новичок во Flash. Я понимаю, что это почти устарело, но проект, над которым я работаю, написан во Flash.addChild()/Implicit Coercion - Flash AS3

Моя текущая задача - получить данные RGB из любого пикселя в файле .jpg. Я сделал следующее до сих пор:

Я сохранил изображение как файл .fla и преобразовал изображение в свой собственный пользовательский класс под названием «StageWheel», а его базовый класс - BitmapData. Однако, когда я делаю это:

var sWheel:StageWheel = new StageWheel(); 
    addChild(sWheel); 
    sWheel.addEventListener(MouseEvent.CLICK, getColorSample); 

    var bitmapWheel:BitmapData = new BitmapData(sWheel.width, sWheel.height); 

Я получаю сообщение об ошибке:

"Implicit coercion of a value of type StageWheel to an unrelated type flash.display.DisplayObject"

на линии с

addChild(sWheel); 

Что означает эта ошибка? Могу ли я использовать addChild для добавления вещей на сцену таким образом?

EDIT

Это работало @LDMS, спасибо. Я сейчас пытаюсь сделать это позже:

var rgb:uint = bitMapWheel.getPixel(sWheel.mouseX,sWheel.mouseY); 

и получить ошибку

"1061: Call to a possibly undefined method getPixel through a reference with static type flash.display:Bitmap."

Что это значит? Могу ли я использовать getPixel для растрового изображения? Извините за новизну, по какой-то причине Flash мне очень трудно учиться.

+0

К сожалению. Я создал файл .fla с изображением .jpg, вставленным на сцену, затем преобразовал файл .jpg в растровое изображение и создал пользовательский класс. –

+0

Да, правда. Все еще получаю ту же самую ошибку, пытаясь сказать, что вы сказали. Если базовым классом является BitmapData, почему я должен определить bitmapWheel как растровое изображение? –

+0

Как у вас есть, с вашим 'bitmapWheel' var, вы просто создаете новую пустую BitmapData, которая соответствует ширине и высоте или вашим данным растрового изображения sWheel. ваш экземпляр 'sWheel' уже является BitmapData, вам не нужно создавать другие растровые данные var. – BadFeelingAboutThis

ответ

1

Класс StageWheel - это битмапДата, который сам по себе не является экранным объектом, который можно добавить на сцену.

Вам необходимо обернуть ваши данные растрового изображения в Bitmap, чтобы сделать его отображаемым.

var sWheel:BitmapData = new StageWheel(); //This is bitmap data, which is not a display object, just data at this point. 

//to display the bitmap data, you need to create a bitmap and tell that bitmap to use the bitmap data 
var bitmapWheel:Bitmap = new Bitmap(sWheel); 

//now you can add the bitmap to the display list 
addChild(bitmapWheel); 

EDIT Для второй части Вашего вопроса, то вам нужно Асесс растровые данные растрового изображения для использования getPixel

bitmapWheel.bitmapData.getPixel(bitmapWheel.mouseX,bitmapWheel.mouseY);