Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как применить scale9Grid к уже созданному графическому объекту (http://www.flasher.ru/forum/showthread.php?t=126846)

tie 29.06.2009 01:20

Как применить scale9Grid к уже созданному графическому объекту
 
Здравствуйте. Может ли мне кто-нибудь подсказать как применить scale9Grid к объекту, который я создал как символ MovieClip, связал его с классом предположим My и потом добавил его на сцену как addChild(var myObject=new My());. Когда я пытаюсь сделать что-то вроде myObject.scale9Grid=new Rectangle(1,1,1,1), то возникает следующая ошибка:
Код AS3:

        ArgumentError: Error #2004: One of the parameters is invalid.
        at flash.display::DisplayObject/set scale9Grid()
        at darkMatter::MainMenu$iinit()

Подобная ошибка возникает когда не попадаешь квадратом сетки в область объекта, но объект у меня имеет размеры 10x10 и расположен в координатах 0:0. В чем может быть проблема?

zafod 29.06.2009 06:58

я думаю, что сетки 1,1,1,1 для вашего объекта быть не может.

tie 29.06.2009 12:31

??? В смысле? Почему не может? Можно как-нибудь аргументировать?

dimarik 29.06.2009 12:49

А я тут задумался, почему в описании scale9Grid дан пример с орангутаном.

tie 29.06.2009 13:32

Этот пример работает, но он не совсем такой, как мне нужен. Там объект создается как Shape програмно, а мне нужно применить scale9Grid к уже созданному мной MovieClip символу, который я вставляю в код как экземпляр слинкованного с ним класса.

Волгоградец 29.06.2009 13:40

Вообще-то все правильно делаете - Rectangle задан верно и применяете тоже верно. Скорее всего в том месте, где применяется scale9Grid клипа нет, т.е. позицию неверно указали.
А вообще если клип создаете руками, то и scale9Grid удобнее руками присвоить.

Партизан 29.06.2009 13:48

Был не прав... сорри...

tie 29.06.2009 14:05

Цитата:

Сообщение от Волгоградец (Сообщение 831647)
А вообще если клип создаете руками, то и scale9Grid удобнее руками присвоить.

Я пробывал соэдать руками - выбрал в библиотеке символ и в его свойствах поставил галочку чтоб использовать scale9 режим. Но при потом при изменении его размеров програмным путем - он скэйлится как обычно (без режима scale9Grid). Может я как-то не правильно вручную этот режим задаю? Может есть какой-нибудь .fla пример с такого рода масштабированием?

Партизан 29.06.2009 14:07

Код AS3:

var square = new SD(); // SD movieClip... 
 
var grid:Rectangle = new Rectangle(1, 1, 1, 1);
square.scale9Grid = grid ;
 
addChild(square);

Никаких ошибок... не вылетело...

tie 29.06.2009 14:14

Странно, у меня так не работает (вернее компилятор пропускает, а в output выдается ошибка). Может что-то связвно с иерархичностью моего MovieClip-а? А можно вас попросить прислать мне этот .fla файл? Чтоб мне понять в чем разница с моим примером... Спасибо.


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

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