![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
Друзья, подскажите, каким образом применить эффект Resize к какому-либо компоненту с графикой?
Я создаю канвас, рисую на нем circle и пытаюсь применить эффект - так не срабатывает. Только меняются границы канваса, но графика остается статичной. Вот код <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="draw();">
<mx:Script>
<![CDATA[
import mx.containers.Canvas;
import mx.effects.Resize;
public function draw():void {
var myDiv:Canvas = new Canvas();
myDiv.width = 100;
myDiv.height = 100;
myDiv.setStyle('borderStyle', 'solid');
myDiv.setStyle('borderThickness', 1);
myDiv.setStyle('borderColor', 0x000000);
myDiv.graphics.lineStyle(2, 0x000000, 0.8);
myDiv.graphics.beginFill(0xFFFFFF, 0.6);
myDiv.graphics.drawCircle(100, 100, 100);
myDiv.graphics.endFill();
application.addChild(myDiv);
myDiv.scaleX = 0.5;
var res:Resize = new Resize();
res.target = myDiv;
res.widthTo = 250;
res.heightTo = 250;
res.duration = 700;
res.play();
}
]]>
</mx:Script>
</mx:Application>
|
|
|||||
|
help -> Creating and Extending Flex 2 Components -> Creating ActionScript Components -> Creating Advanced Visual Components in ActionScript -> Implementing the component -> Implementing the measure() method
|
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
Спасибо, большое, но я не могу разобраться, как мне этот метод может помочь?
Добавил: но ничего не меняется - эффект resize никаким образом не влияет на графику, нарисованную на канвасе. |
|
|||||
|
Надо ещё почитать про updateDisplayList() и про createChildren() для завершённости.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Расшифрую miramax-а: нужно создать свой компонент на основе того же UIComponent и реализовать перечисленные методы.
|
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
Спасибо, прочел.
В общем, получается так - если я применяю к канвасу эффект Resize, то, в течение действия эффекта, многократно дергается метод updateDisplayList(). Я могу в этом методе перерисовывать всю графику, в этом случае, эффект применяется и к нарисованной на канвасе графике. Но вычисление новых координат и размеров графических элементов получается слишком громоздким. А нет ли способа взять канвас, нарисовать на нем пару кружочков и линий, затем превратить его в некий спрайт, к которому можно применять эффекты ресайза и не париться на счет новых координат графических объектов? Мне нужно достичь вот такого эффекта: http://www.powerhead.kiev.ua/Work/chart/ Подскажите наиболее простой способ этого добиться. |
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
Грубо говоря, мне нужно сделать следующее - нарисовать многоугольник с заливкой а затем применить к нему эффект resize. Как проще всего это сделать?
Последний раз редактировалось Powerhead; 04.06.2007 в 18:31. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|