PDA

Просмотр полной версии : класс Rectangle - инициализация


Zhihar
18.11.2007, 18:59
у меня есть функция которая принимает flash.geom.Rectangle

хотелось бы передавать в функцию параметр так:

myfunc(flash.geom.Rectangle(10, 10, 15, 30));

но функция ругается :-( - синтаксическая ошибка
почему?
как же тогда задать?

udaaff
18.11.2007, 19:06
myfunc(new flash.geom.Rectangle(10, 10, 15, 30));

Zhihar
18.11.2007, 19:09
:-( не хорошо как-то выглядит (для человека пишущего на C++)
delete надеюсь нигде делать не надо? ;-)

а более короткую запись можно делать?
а то функция которая принимает несколько таких параметров выглядеть будет уж очень "широкой"

udaaff
18.11.2007, 19:17
import flash.geom.*
myfunc(new Rectangle(10, 10, 15, 30));

ps более короткую нельзя сделать, короче не куда

BigDan
18.11.2007, 19:18
а то функция которая принимает несколько таких параметров выглядеть будет уж очень "широкой"

import flash.geom.Rectangle;
myfunc(new Rectangle(10, 10, 15, 30));

Zhihar
18.11.2007, 19:19
ну это я сделал конечно, но уж очень это new не нравится в параметрах функции

массивы то можно просто через Array(1,2,3,4) задавать в той же функции

udaaff
18.11.2007, 19:21
> массивы то можно просто через Array(1,2,3,4) задавать в той же функции

Можно пример?

Zhihar
18.11.2007, 19:29
function CRegulator(objRegulator:Object, objMovie:Object,
rcRegulator:Rectangle,
pPositionsArray:Array, pMoviesStartFrameArray:Array)
{}


var g_pExtractionRegulator:CRegulator = new CRegulator(mcExtractionRegulator, mcRegimes,
new Rectangle(234.6-52/2, 76.3-52/2, 52, 52),
Array(0, 65, 135, 225, 270), Array(1, 12, 1, 1));

BigDan
18.11.2007, 19:41
http://livedocs.adobe.com/flash/9.0/main/00001167.html

Zhihar
18.11.2007, 19:43
BigDan, и?

etc
18.11.2007, 19:43
Zhihar, отредактируйте свои посты и оформите код тегами .

BigDan
18.11.2007, 19:47
BigDan, и?
Это значит, что вы вызываете функцию, а не конструктор класса.

Zhihar
18.11.2007, 19:52
понятно
жаль конечно :-(

lowka
18.11.2007, 19:53
ну это я сделал конечно, но уж очень это new не нравится в параметрах функции

var rect:Rectangle = new Rectangle(...);
var regulator:CRegulator = new CRegulator(rect, ...);

Zhihar
18.11.2007, 19:59
lowka, это две строчки :-)
просто я привык к C++, мне так нагляднее было бы - func(class(params))

iNils
18.11.2007, 20:06
Вы пишите на AS, так что забудьте как было в C++, в AS на ваш синтаксис возложене другая функция
Class (xxx) - это приведение типа
new Class (xxx) - это создание экземпляра

Ruffus
15.04.2008, 00:37
У меня такой вопрос.
Я пишу в классе:

import flash.geom.Rectangle;
class myClass {
_rect: Rectangle;
...
public function myClass() {
_rect = new Rectangle(0,0,0,0);
}
}

Файл класса компилируется.
Потом импортирую его в осной файл мувика, и там компайлер говорит, что класс Rectangle не может быть загружен. Почему так?

udaaff
15.04.2008, 01:51
import flash.geom.Rectangle;
class myClass {
private var _rect: Rectangle;
...
public function myClass() {
_rect = new Rectangle(0,0,0,0);
}
}

Ruffus
15.04.2008, 12:41
private и var - это само собой
от ошибки загрузки класса это не спасает...

Ruffus
16.04.2008, 18:14
В файле класса import нормально компилируется, а при подгрузке этого класса в скрипт первого кадра, начинает ругаться на описание класса, на все места, где всречается Rectangle.
import flash.geom.Rectangle , как видите, я не забыл написать.