Вам нужно сначала создать текстуру с изображением, а затем создать retryButton
с этой текстурой как SKSPriteNode
, должно работать следующее:
var retryButton: SKSpriteNode!
let texture = SKTexture(imageNamed: "retryImage")
retryButton = SKSpriteNode(texture: texture)
retryButton.color = .white
retryButton.position = CGPoint(x: frame.midX, y: frame.midY - 100)
self.addChild(retryButton)
Это - тяжелая проблема. Необходимо сделать это с Ajax и использовать заголовки размера файла, отправленные браузером на сервер по запросу POST.
Библиотека UI Yahoo имеет инструмент для помощи с этим. Загрузчик YUI
JavaScript не может сделать этого. Это имело бы серьезные проблемы безопасности. Возможно, флэш-память может все же.
Не может быть надежно сделан с JavaScript для всех браузеров, но можно ограничить общий размер отправленных данных из web.config
У Вас действительно нет большого количества опций при использовании традиционного элемента управления вводом файла. Вы не можете проверить его на стороне клиента, и это поразит Ваш настроенный maxRequestLength, прежде чем Вы получите возможность проверить его сторона сервера. Можно поймать исключение, которое происходит, когда maxRequestLength превышен все же.
Короткий ответ: Нет, необходимо обработать это на сервере.
Длинный ответ: Не надежный. С IE Вы могли сделать что-то как:
function checkSize(filespec) {
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.size;
// Do something with var s
}
Но это может легко быть comprimised настройками безопасности браузера или использованием другого браузера или платформы.