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

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

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

Регистрация: Jun 2013
Сообщений: 17
Question Не работает scale9grid

Добрый день!

Беру изображение кнопки.



Хочу использовать scale9grid. Пробывал двумя способами - и все безрезультатно.

1) Добавляю в библиотеку Adobe Flash, преобразовываю в символ с поддержкой scale9grid, выставляю пунктирными линиями центр кнопки, пишу action.
Код AS3:
var btn1:Sprite = new simpleBtn();
btn1.width = 100;
addChild(btn1);
Не работает, углы растягиваются.

2) Добавляю в библиотеку Adobe Flash, преобразовываю в символ, пишу action.
Код AS3:
var btn1:Sprite = new simpleBtn();
btn1.scale9grid = new Rectangle(5, 5, 81, 32);
btn1.width = 100;
addChild(btn1);
Результат точно такой же.

Что я делаю не так, подскажите, пожалуйста.
Изображения
 

Старый 13.06.2013, 12:00
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
1. В библиотеке правой кнопкой по символу, Propereties, ставим галочку "Enable guides for 9-slice scaling"
2. Rectangle(5, 5, 76, 27);
__________________
Поймай яблоко 2!

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

Регистрация: Jun 2013
Сообщений: 17


Код AS3:
import flash.geom.Rectangle;
import flash.display.Sprite;
 
var button:Sprite = new simpleBtn();
button.width = 150;
button.x = 100;
button.y = 100;
button.scale9Grid = new Rectangle(5, 5, 76, 27);
 
var button2:Sprite = new simpleBtn();
button2.width = 150;
button2.x = 100;
button2.y = 200;
 
var button3:Sprite = new simpleBtn2();
button3.width = 150;
button3.x = 100;
button3.y = 300;
 
addChild(button);
addChild(button2);
addChild(button3);
Первый вариант: кодом
Второй вариант: оригинальная кнопка
Третий вариант: через Flash
Миниатюры
Нажмите на изображение для увеличения
Название: scale.png
Просмотров: 379
Размер:	28.4 Кб
ID:	29690  
Изображения
 

Старый 13.06.2013, 12:51
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 4  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
А разве стандартный scale9grid работает с BitmapData ? вроде как надо использовать вектор
__________________
FlashPress.ru | Blog

Старый 13.06.2013, 13:15
newpdv вне форума Посмотреть профиль Отправить личное сообщение для newpdv Найти все сообщения от newpdv
  № 5  
Ответить с цитированием
newpdv

Регистрация: Jun 2013
Сообщений: 17
Спасибо!

Остановился на http://www.bytearray.org/?p=118
И добился таки результата

Тут всего 200 строк кода (6,4 Кб)
А без комментариев и того 113 строк и 4,6 Кб

Старый 13.06.2013, 14:44
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 6  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
http://gskinner.com/blog/archives/20...slice9_sc.html

Старый 13.06.2013, 14:49
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 7  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Есть еще дедушкин способ.
1) Расставляем в ИДЕ скейлгрид
2) Брейкапартим Битмапку
3) Все, что должно тянуться не трогаем
4) Каждый уголок группируем.
5) Вуаля.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 13.06.2013, 16:00
newpdv вне форума Посмотреть профиль Отправить личное сообщение для newpdv Найти все сообщения от newpdv
  № 8  
Ответить с цитированием
newpdv

Регистрация: Jun 2013
Сообщений: 17
zuxul, это какой-то JS-based скрипт.
Не очень понравилось решение

Старый 13.06.2013, 17:42
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 9  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Это jsfl-код, который выполняется во Flash CS4 или CS5. Он выполняет все то, что описал GBee в 7 ответе, только автоматически.

Старый 13.06.2013, 22:04
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
http://stackoverflow.com/questions/4...ogether-or-not
Код AS3:
var rect:Rectangle = new Rectangle(20, 20, 60, 10);
var gridX:Array = [rect.left, rect.right, bitmapData.width];
var gridY:Array = [rect.top, rect.bottom, bitmapData.height];
 
shape.graphics.clear();
 
var left:Number = 0;
for (var i:int = 0; i < 3; i++) {
    var top:Number = 0;
    for (var j:int = 0; j < 3; j++) {
        shape.graphics.beginBitmapFill(bitmapData);
        shape.graphics.drawRect(left, top, gridX[i] - left, gridY[j] - top);
        shape.graphics.endFill();
        top = gridY[j];
    }
    left = gridX[i];
}
shape.scale9Grid = rect;
__________________
משיח לא בא
משיח גם לא מטלפן

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

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

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


 


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


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