Ошибка типа Flex / Actionscript # 1034 - PullRequest
0 голосов
/ 05 июля 2010

Я пытаюсь обнаружить наложение между элементами на моем холсте. Попытка состоит в том, чтобы повторно использовать часть кода для обнаружения столкновений в 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 :: Container / http://www.adobe.com/2006/flex/mx/internal::addingChild mx.core :: Контейнер / addChildAt mx.core :: Контейнер / AddChild царапина / INIT царапина / ___ 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

1 Ответ

0 голосов
/ 05 июля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...