Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сконвертировать изображение в шейп (http://www.flasher.ru/forum/showthread.php?t=144481)

bato 13.09.2010 17:41

Сконвертировать изображение в шейп
 
Есть у меня картинка, которую я включаю в код:
Код AS3:

[Embed (source='pic.png')]
var Png: Class;

Если я добавлю эту картинку
Код AS1/AS2:

addChild(new Png());

то это будет именно картинка, которая позиционируется верхним левым углом. Если же я подключаю в коде шейп, созданный во FlashIDE, то при позиционировании я буду указывать координаты центра (ну в если я так этот шейп нарисую).

Так вот как мне в коде конвертировать картинку в шейп?

КорДум 13.09.2010 17:50

Пихайте картинку в контейнер - и позиционируйте ее там как хотите.

bato 13.09.2010 17:56

это как? мне нужно это сделать на чистом actionscript.

Zebestov 13.09.2010 18:30

это так
Код AS3:

var myPng:Bitmap = new Png();
addChild(myPng);
myPng.x = ...;
myPng.y = ...;


i.o. 13.09.2010 18:35

Цитата:

Так вот как мне в коде конвертировать картинку в шейп?
Господа, человеку нужен банальный Graphics#beginBitmapFill()

КорДум 13.09.2010 18:59

i.o., с чего вы взяли, что там обычная заливка?

Допишу код от Zebestov:
Код AS3:

var container:Sprite = new Sprite();
var myPng:Bitmap = new Png();
container.addChild(myPng);
myPng.x = ...;
myPng.y = ...;


i.o. 13.09.2010 19:03

Цитата:

Сообщение от КорДум (Сообщение 935584)
i.o., с чего вы взяли, что там обычная заливка?

это вообще к чему?
Вопрос выглядел вроде так:
Цитата:

Так вот как мне в коде конвертировать картинку в шейп?
Какие у вас еще варианты по превращению картинки в шейп?

PS: возможно вы не в курсе, если у картинки в библиотеке флэша не назначен класс, то она в шейп превращается после компиляции.

КорДум 13.09.2010 19:05

А, пардон. Но все равно - регистрационную точку нужно самому переносить в нужное место путем сдвига картинки, что я и посоветовал первым своим сообщением.

bato 20.09.2010 15:02

Sprite, как контейнер не подходит, мне нужно отрисовать картинку в Shape'e.

Код AS3:

var b: Bitmap = new Png();            
var sh: Shape = new Shape();           
sh.graphics.beginBitmapFill(b.bitmapData, null, false, true);
sh.graphics.drawCircle(1, 1, b.width / 2);
sh.graphics.endFill();
sh.x = 100;
sh.y = 100;
addChild(sh);

Но в таком случае картинка вставляется в шейп как-то криво.

samana 20.09.2010 16:22

Попробуйте так:
Код AS3:

var b: Bitmap = new Bitmap(new Png(0,0))       
var sh: Shape = new Shape();
var matrix:Matrix=new Matrix();
matrix.tx=-b.width / 2
matrix.ty=-b.width / 2;
sh.graphics.beginBitmapFill(b.bitmapData, matrix, false, true);
sh.graphics.drawCircle(0,0, b.width / 2);
sh.graphics.endFill();
sh.x = 100;
sh.y = 100;
addChild(sh);



Часовой пояс GMT +4, время: 22:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.