Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.05.2007, 21:47
Powerhead вне форума Посмотреть профиль Отправить личное сообщение для Powerhead Найти все сообщения от Powerhead
  № 1  
Ответить с цитированием
Powerhead

Регистрация: 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>

Старый 23.05.2007, 23:13
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 2  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
help -> Creating and Extending Flex 2 Components -> Creating ActionScript Components -> Creating Advanced Visual Components in ActionScript -> Implementing the component -> Implementing the measure() method
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 24.05.2007, 15:12
Powerhead вне форума Посмотреть профиль Отправить личное сообщение для Powerhead Найти все сообщения от Powerhead
  № 3  
Ответить с цитированием
Powerhead

Регистрация: May 2006
Сообщений: 47
Спасибо, большое, но я не могу разобраться, как мне этот метод может помочь?
Добавил:

Код:
myDiv.invalidateSize();
myDiv.measuredHeight = 100;
myDiv.measuredWidth = 100;
но ничего не меняется - эффект resize никаким образом не влияет на графику, нарисованную на канвасе.

Старый 24.05.2007, 15:43
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 4  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Надо ещё почитать про updateDisplayList() и про createChildren() для завершённости.
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 24.05.2007, 16:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Расшифрую miramax-а: нужно создать свой компонент на основе того же UIComponent и реализовать перечисленные методы.

Старый 04.06.2007, 16:59
Powerhead вне форума Посмотреть профиль Отправить личное сообщение для Powerhead Найти все сообщения от Powerhead
  № 6  
Ответить с цитированием
Powerhead

Регистрация: May 2006
Сообщений: 47
Спасибо, прочел.
В общем, получается так - если я применяю к канвасу эффект Resize, то, в течение действия эффекта, многократно дергается метод updateDisplayList(). Я могу в этом методе перерисовывать всю графику, в этом случае, эффект применяется и к нарисованной на канвасе графике. Но вычисление новых координат и размеров графических элементов получается слишком громоздким. А нет ли способа взять канвас, нарисовать на нем пару кружочков и линий, затем превратить его в некий спрайт, к которому можно применять эффекты ресайза и не париться на счет новых координат графических объектов?
Мне нужно достичь вот такого эффекта: http://www.powerhead.kiev.ua/Work/chart/
Подскажите наиболее простой способ этого добиться.

Старый 04.06.2007, 18:19
Powerhead вне форума Посмотреть профиль Отправить личное сообщение для Powerhead Найти все сообщения от Powerhead
  № 7  
Ответить с цитированием
Powerhead

Регистрация: May 2006
Сообщений: 47
Грубо говоря, мне нужно сделать следующее - нарисовать многоугольник с заливкой а затем применить к нему эффект resize. Как проще всего это сделать?


Последний раз редактировалось Powerhead; 04.06.2007 в 18:31.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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