Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ошибка типа Flex / ActionScript # 1034

Автор вопроса: VivekОтветов: 1

Я пытаюсь обнаружить перекрытие элементов на своем холсте. Попытка состоит в том, чтобы повторно использовать часть кода для обнаружения столкновений на странице http://www.gskinner.com/blog/archives/2005/08/flash_8_shape_b.html

Это самый маленький образец MXML, который я мог придумать, который дает мне ошибку типа.

    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
      creationComplete="init()">
 <fx:Script>
  <![CDATA[
   public function init():void {
    var matrix:Matrix = new Matrix();
    var bounds:Rectangle = this.getBounds(this);
    var img:BitmapData = new BitmapData(this.width, this.height);
    img.draw(this,matrix,new ColorTransform(1,1,1,1,255,-255,-255,255));
    var bm:Bitmap = new Bitmap(img);
    bm.x = 0;
    bm.y = 0;
    canvas.addChild(bm);
   }
  ]]>
 </fx:Script>
 <mx:Canvas id="canvas" width="600" height="600">
  <s:Label id="text" x="100" y="100">
   This is a test
  </s:Label>
 </mx:Canvas>
</s:Application>

Выполнение этого кода не выполняется с помощью

Main Thread (Suspended: TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::Bitmap@3b81971 to mx.core.IUIComponent.)

mx.core :: Контейнер / http://www.adobe.com/2006/flex/mx/internal::addingChild mx.core :: Container / addChildAt mx.core :: Container / addChild scratch / init scratch / ___ scratch_Application1_creationComplete flash.events::EventDispatcher/dispatchEventFunction [без источника] flash. events :: EventDispatcher / dispatchEvent [без источника] mx.core :: UIComponent / dispatchEvent mx.core :: UIComponent / set initialized mx.managers :: LayoutManager / doPhasedInstantiation mx.managers :: LayoutManager / doPhasedInstantiationCallback

Кто-нибудь может увидеть, что мне не хватает? Заранее благодарим за помощь. -v

typeerroractionscript-3apache-flex

Ответы

Ответ 1 · JeffryHouser

Вы пытаетесь добавить BitMap в качестве дочернего на Холст. Метод addChild принимает объект DisplayObject. , которым BitMapData не является.

Вероятно, вы можете установить Bitmap на источник изображения и добавить это в детстве. Хотя я не совсем уверен, почему вы не получаете сообщение об ошибке преобразования Bitmap в DisplayOBject, а не в UIComponent.

Кстати, факт, что у вас есть "это тест" в виде обычного текста на этикетке, мне кажется неправильным; Flex 4 знает, что с этим делать?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы