Variable-weight optical orthogonal code (OOC) was introduced by Yang for multimedia optical CDMA systems with multiple quality of service (QoS) requirements. In this paper, the upper bound on the size of variable-weight OOCs is improved, a cyclic t-(v, W, λ, Q) packing is introduced to construct a variable-weight OOC, an upper bound for the number of blocks of t-(v, W, λ, Q) packings is obtained, and an equivalence between optimal cyclic packing and optimal variable-weight optical orthogonal code is established. Recursive constructions for optimal 2-CP(W, 1, Q;v)s are also presented. By using skew starters and these constructions, infinite classes of optimal (v, W, 1, {1/2, 1/2})-OOCs are obtained for W = {3, 4}, and {4, 5}.