Просмотр полной версии : Как передать в класс переменную по ссылке?
В основном коде:
public var sp:Sprite = new Spite();
addChild(sp);
класс:
package
{
// simple base class for 3D objects
public class Mesh3D
{
//как здесь использовать sp?
}
}
package
{
// simple base class for 3D objects
public class Mesh3D
{
public function Name(sp:Sprite)
{
//Какието ваши действия
}
}
}
такое попробуйте
Добавлено через 1 минуту
затем вызывайте функцию где надо проставляя параметр sp
основной код
import temp;
var sp:Sprite = new Sprite();
addChild(sp);
var t:temp;
t.Name2(sp);
класс
package
{
import flash.display.Sprite;
public class temp
{
public function Name2(sp:Sprite)
{
sp.graphics.lineStyle(2, 0x00FF00, 1);
sp.graphics.drawRect(0,0,500,500);
}
}
}
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
А если придется использовать эту ссылку в разных функциях можно ли обойтись без аргумента?
1. В названии класса первая буква должна быть прописной.
2. Если вы не создадите экземпляр класса, то он, естесственно никогда сам не создасться.
3. Первая буква в имени функции должна быть строчной.
4. У функции должен быть указан возвращаемый тип.
1,3 - не согласен. почему?
2,4 спасибо исправил, заработало
Как передать в класс переменную по ссылке?
В экземпляр класса.
1,3 - не согласен. почему?
Потому что с таким Г никто не захочет работать потом.
1,3 - не согласен. почему?
Потому что есть стандарт. Кто его не соблюдает, идёт лесом.
Так помогло? а без аргумента как вы его отправите? если нашли способ расскажите)
Так помогло? а без аргумента как вы его отправите? если нашли способ расскажите)
Спасибо, помогло. И способ без аргумента нашел. Можно классе объявить глобальную переменную такого же типа:
package
{
import flash.display.Sprite;
public class Temp
{
public var refSp:Sprite;
public function name2():void
{
refSp.graphics.lineStyle(2, 0x00FF00, 1);
refSp.graphics.drawRect(0,0,500,500);
}
}
}
а в основном коде прописать присвоение:
import tmp:Temp = new Temp;
var sp:Sprite = new Sprite();
tmp.refSp = sp;
tmp.name2;
Надеюсь AS4 будет строже и никогда не позволит писать вызов конструкторов и методов без скобок.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.