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

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

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

Регистрация: Feb 2007
Сообщений: 30
По умолчанию Ошибка при использовании Scale9Grid

фла файл
Код AS3:
var square:Scale9 = new Scale9();
addChild(square);
файл Scale9.as
Код AS3:
package
{
	import flash.display.*;
	import flash.geom.*;
 
	public class Scale9 extends MovieClip
	{
		public function Scale9():void
		{
			graphics.lineStyle(10,0x40A0A0,30);
			graphics.beginFill(0xFF0000);
			graphics.drawRect(50,50,100,100);
			graphics.endFill();
			var grid:Rectangle = new Rectangle(60,60,90,90);
			scale9Grid = grid;
		}
	}
}
Ошибка:
ArgumentError: Error #2004: Один из параметров указан неверно.
at flash.display:: DisplayObject/set scale9Grid()
at Scale9()
at v_fla::MainTimeline/frame1()

в чем проблема?

Старый 29.07.2009, 18:05
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 2  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Тут надо определить видимый размер скалируемого объекта и нарисовать вокруг него невидимый прямоугольник, но так что-бы прямоугольник выступал со всех сторон объекта ,хотя-бы на пару пикселей, а потом применять скале9грид с первоначальным размером объекта, так она всегда работает.
Пример
http://www.murmadillo.tut.su/m/scale9gridTrue.rar

Старый 29.07.2009, 19:56
CEBEP вне форума Посмотреть профиль Отправить личное сообщение для CEBEP Посетить домашнюю страницу CEBEP Найти все сообщения от CEBEP
  № 3  
Ответить с цитированием
CEBEP
 
Аватар для CEBEP

Регистрация: Nov 2006
Сообщений: 688
Отправить сообщение для CEBEP с помощью ICQ Отправить сообщение для CEBEP с помощью Skype™
http://onenterframe.ru/2009/06/14/smart9slice/ Тут интересный пример
__________________
"I am the terror that flaps in the night…!"

Старый 29.07.2009, 20:17
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Если я правильно понял задумку, то должно быть так.
Код AS3:
var grid:Rectangle = new Rectangle(60,60,80,80);
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 29.07.2009 в 20:19.
Старый 30.07.2009, 01:39
formid вне форума Посмотреть профиль Отправить личное сообщение для formid Найти все сообщения от formid
  № 5  
Ответить с цитированием
formid

Регистрация: Feb 2007
Сообщений: 30
Помог вот етот вариант
Код AS3:
var grid:Rectangle = this.getRect(this);
graphics.drawRect(grid.x-1,grid.y-1,grid.width+2,grid.height+2);
Всем спасибо )

Старый 23.04.2010, 22:24
Sylon вне форума Посмотреть профиль Отправить личное сообщение для Sylon Найти все сообщения от Sylon
  № 6  
Ответить с цитированием
Sylon

Регистрация: Nov 2009
Сообщений: 16
К сожалению, scale9Grid пока работает так, что ей лучше не пользоваться. Для малоразмерных объектов, минимальные размеры которых при масштабировании должны быть менее 10 пикселов, использовать не реально. Как ни подбирай параметры, всё равно иногда будет вылетать. Для таких объектов - только два варианта: либо дробить их на 9 отдельных, либо каждый раз отрисовывать по новой. Первый вариант плох не только раздутым кодом, но ещё и тем, что растёт загрузка проца при при банальном перемещении мыши... Если это кнопки с хитрыми углами, и их на экране с полсотни, если не больше... в общем разрастание числа объектов не есть гуд...
Практически пришлось остановиться на варианте, где при изменении размеров картинка каждый раз отрисовывается заново.
А теперь самое интересное - самая большая загрузка проца получилась при разбиении на 9 кусков, и масштабировании нужных по отдельности. Использование .cacheAsBitmap=true влияет, к сожалению, незначительно.
Самый шустрый вариант - через scale9Grid, только заставить его работать без глюков так и не получилось.
Вариант с .graphics.clear() и отрисовкой заново работает ~ в двое медленнее, чем .scale9Grid, но заметно быстрее, чем перемещение углов и масштабирование кусочков.
Ручное разбиение на 9 кусков можно заставить работать быстро, если каждый из них отрисовать в свой битмап, правда этот номер не проходит, если нужно собитать события мыши с объекта хитрой формы, да и слишком громоздко...

Старый 26.04.2010, 11:19
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 7  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
попробуйте http://www.bytearray.org/?p=118
я лично использовал для выплывающих менюшек с твинами - работает шустро.
__________________
Отряд Котовскага

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

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

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


 


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


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