![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2008
Сообщений: 41
|
возможно ли между воркерами передавать объекты sprite и movieclip?
var sp:Sprite = new Sprite(); sp.graphics.beginFill(0x00ff00); sp.graphics.lineStyle(); sp.graphics.drawRect(0, 0, 100, 100); sp.graphics.endFill(); messageChannel.send(sp); registerClassAlias("flash.display.Sprite", Sprite); messageChannel = bgWorker.createMessageChannel(Worker.current); messageChannel.addEventListener(Event.CHANNEL_MESSAGE, handleResultMessage); bgWorker.setSharedProperty("messageChannel", messageChannel); private function handleResultMessage(event:Event):void { var result = messageChannel.receive(); trace(result.toString()); // [object Sprite] trace((result as Sprite).width); //0 addChild(result as Sprite); //ничего не отображается bgWorker.terminate(); } |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 141
|
Дело в том, что все DisplayObject передавать между воркерами нельзя, все передаваемые объекты сереализуются с помощью AMF протокола, таким образом любой объект полученный воркером является его копией, а не тем же самым экземпляром, исключение составляет ByteArray, свойство sharable которого, установлено в true. DisplayObject сериализовать с помощью AMF нельзя, используйте BitmapData, если это все же необходимо.
А также более глубоко изучите работу Worker |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 41
|
спасибо!
Последний раз редактировалось raltm; 06.03.2014 в 11:36. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|